[Zope] small problem.

Oliver Bleutgen myzope@gmx.net
Mon, 03 Dec 2001 18:39:20 +0100


sanjeev c s wrote:

> hello,
> in my webpage,i want user to download a zip file. 
> this is the code
> 
> <a href="folder1/<dtml-var e_name>"><dtml-var iname>
> </a>
> 
> variable e_name contains the zip file with a id and a
> title.
> now when i click on iname it opens the download
> dialogue box. i say save to disk. 
> now id of the variable e_name becomes the default file
> name(in the save as  box). 
> can i make the title of e_name as a default name
> (in the save as box)?? how ??
> Please help.

This is not straightforward for a file, and esp. not a zope thing/problem.
By default, the browser uses the tail of a URI to construct the filename 
for saving.

Additionally, most browser honor a http-header which looks like

Content-Disposition: attachment; filename="filename.ext"

which would cause the "save as" box to display "filename.ext" as 
filename. Now we need to get zope to return this header for an object of 
type file.

Fortunately, a file has a property called "precondition".
We use that to call a python script to set the right header.

So put the following line in a python script above your files in the 
hierachy:

context.REQUEST.RESPONSE.setHeader('Content-Disposition','attachment; 
filename=' + context.title)

call it "setheader"

and use setheader as precondition for your files.

cheers,
oliver