I think you should use 

<iframe src="{{=URL('reports', 'form_query.load')}}" style="width:0px; 
height:0px; border:0"></iframe>



On Thursday, 6 September 2012 11:48:56 UTC-5, maverick wrote:
>
> Hello!
> I want to stream a file as an attachment in the response. I have this 
> function:
> def form_query():
>         response.flash = str(request.args(0))
>         response.generic_patterns = ['load']
>         response.headers['Content-Type'] = 
> gluon.contenttype.contenttype('.txt')
>         response.headers['Content-Disposition'] = 'attachment; 
> filename=somefile.txt'
>        #more code goes in here to process request.args here. Ultimately, 
> the controller is expected to return a dict containing a table and the file 
> to be streamed as an attachment. For now just trying to get the file 
> streamed.
>         return response.stream(open('somefile.txt'),chunk_size=1024)
>         
> When I call this controller normally (if I put the streaming code inside 
> index() for e.g.) it responds by opening up a download popup to save the 
> file to disk. But when I have this called as a target function from 
> web2py_component in index.html (to fill a div with the response)like this:
>
> web2py_component("{{=URL('reports', 'form_query.load')}}" + "/" + 
> jQuery(this).val(), target='div_form_query');
>
> It renders the file inside the DIV 'div_form_query' rather than popup a 
> download window.
>
> Any ideas how to render the file as an attachment while using 
> web2py_component. I'm using web2py_component as I want to conditionally 
> load input forms into that div target (div_form_query) based on a select 
> list which has tables as options. The index.html looks something like:
>
> {{left_sidebar_enabled,right_sidebar_enabled=True,False}}
> {{extend 'layout.html'}}
> <h5>{{=message}}</h5>
> {{=SELECT('Select a report', 
> *[OPTION(repts[i].descr, _value=str(repts[i].report)) for i in 
> range(len(repts))], _id="rep_type")}}
> <div id="div_form_query"></div>
>
> <script>
> jQuery(document).ready(function(){
> jQuery('#rep_type').change(function(){
> web2py_component("{{=URL('reports', 'form_query.load')}}" + "/" + 
> jQuery(this).val(), target='div_form_query');
>     });
>  });
> </script>
>
> {{block left_sidebar}}
> {{"""=A(T("Administrative Interface"), 
> _href=URL('admin','default','index'), _class='button',
>      _style='margin-top: 1em;')"""}}
> <!--h6>{{=T("Don't know what to do?")}}</h6-->
> <ul>
>   <li>{{=A(T("Reports"), _href=URL('netman','reports','index'))}}</li>
>   <li>{{=A(T("Billing"), _href=URL('netman','billing','index'))}}</li>
>   <li><a href="http://192.168.136.40/zabbix";>{{=T('Monitoring')}}</a></li>
> </ul>
> {{end}}
>
> Thanks,
> mave
>

-- 



Reply via email to