Hervé Richard wrote:
I write a python script which return a selected file to download. The script receive value from a form to choose the kind of file to download (and increment the counter of the file selected): For example, in a folder i have 2 files ("A.tgz" and "B.tgz") and a Page Template Object (chooseFileToDownload.html). This page is a form with multiple choice in order to seclect a file to download (if the user select "A" button, he must get the A.tgz file, if select "B" he must get A.tgz ...)
I write the python script method to select the file but i don't know how the script sends the file to download: With the variable "fileToDownload" which contain the name of the file selected, if i write "return fileToDownload" in my script i get all the file (in his compressed format) in my navigator windows, but *no* a popup windows which ask me where i want to save the file like we have any time we want to download a file.
There are many a way to get an object based on a string. See zopelabs.com for some examples. One of the most common is:: name = "some_string" obj = context[name] What you want to do with 'obj' depends on what you really want. If you intend to write the contents of the object, you can:: return obj.index_html() # or return obj.data You can redirect to that object like:: context.REQUEST.RESPONSE.redirect(obj.absolute_url()) The file download dialogue is a function of the browser, and it will always do this for MIME types it recognizes as non-displayable. I think the first method may fool it sufficiently that it displays the (mostly nonsense) contents of an archive file in the browser. --jcc -- "My point and period will be throughly wrought, Or well or ill, as this day's battle's fought."