[Seaside] (no subject)
philippe.marschall at gmail.com
Sun Jul 22 12:47:40 UTC 2007
2007/7/22, Maarten Mostert <maarten.mostert at wanadoo.fr>:
> Philippe Marschall a écrit :
> > 2007/7/22, Keith Hodges <keith_hodges at yahoo.co.uk>:
> >> Maarten MOSTERT wrote:
> >> > Hi,
> >> > I am trying to add a download button to my application to serve a
> >> 20MB application file.
> >> > I don't manage figure out how to make button that triggers a
> >> download dialog ?
> >> > I also wonder if MyFileLibrary is the right way to do so ?
> >> > Thanks in adavance,
> >> > @+Maarten,
> >> >
> >> >
> >> Hello Maarten,
> >> some code from Gjallar for doing this
> >> Rendering the anchor:
> >> html
> >> anchor
> >> callback: [attachment downloadInSession:
> >> self session]
> >> tooltip: 'Download file';
> >> with: [ html html: attachment
> >> localFileName].
> >> Attachment-downloadInSession: session
> >> | stream |
> >> stream := self readStream.
> >> session download: stream mimeType: stream mimeType filename:
> >> localFileName
> >> WASession-download: contents mimeType: mimeType filename: fileName
> >> self respond: [:url |
> >> (WAResponse new)
> >> contentType: mimeType;
> >> doNotCache;
> >> headerAt: 'Content-Disposition' put: 'attachment;
> >> filename="' , fileName , '"';
> >> headerAt: 'Content-length' put: contents size printString;
> >> contents: contents;
> >> yourself]
> > Will this block the sesion until the download is finished?
> > Philippe
> I haven't been able to get this working as I don't have the supposed
> Attachement Class in my VW system.
> I found a Class called AttachmentFilename though in HTTP so maybe this
> is the one to use.
> Maybe I can simply fork the download action in a new session ?
The best and most reliable way is:
1. Configure Apache or lighy to serve the file. As it just turned out
Swazoo is not up for the task and I wound't be surprised if Kom is not
either. Again and again we tell people to use an Apache frontend to
serve static files, exactly because of this. But no. It has to
Smalltalk, it has to block the image, it has to be copied three or
four times in the image, it has to block the session.
2. Use an achor. HTML is not really a GUI framework where a button is
simply a widget. Certain things are best done in a certain ways.
Anchors are what you need here.
> >> This download method is available as an extension to base seaside in
> >> repository http://www.squeaksource.com/Jetsam
> >> cheers
> >> Keith
> >> _______________________________________________
> >> Seaside mailing list
> >> Seaside at lists.squeakfoundation.org
> >> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> > _______________________________________________
> > Seaside mailing list
> > Seaside at lists.squeakfoundation.org
> > http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
> Seaside mailing list
> Seaside at lists.squeakfoundation.org
More information about the Seaside