Download-Dialog für verlinkte File-Objekte
Anstatt direkt im Browser angezeigt zu werden, kann auch ein Download-Dialog für verlinkte File-Objekte erzwungen werden.
Anstatt direkt im Browser angezeigt zu werden, kann auch ein Download-Dialog für verlinkte File-Objekte erzwungen werden.
Den Download-Dialog kann man über den http-header-Paramater 'Content-Disposition' erzwingen.
Content-disposition: attachment; filename=fname.ext
Ref.: http://support.microsoft.com/kb/260519
Da per ZMS._blobfields.py der http-header stets explizit als 'inline' gesetzt wird
Z.639: MyBlob.__call__
RESPONSE.setHeader('Content-Disposition','inline;filename=%s'%self.getFilename())
muss man sich eine gesonderte Rückgabemethode schrieben, die allerdings verblüffend einfach ist:
# Script (Python) # request = container.REQUEST RESPONSE = request.RESPONSE try: file=context.getObjProperty('file',request) filetype=file.getContentType() filename=file.getFilename() filesize=file.getDataSizeStr() fileurl=file.getHref(request) RESPONSE.setHeader('Content-Type', filetype) RESPONSE.setHeader('Content-Length', filesize) RESPONSE.setHeader('Content-Disposition','attachment;filename=%s'%filename) return file.getData() except: return 'Error: File not found'