diff --git a/browser/configure.zcml b/browser/configure.zcml index f50054d..a7b05f1 100644 --- a/browser/configure.zcml +++ b/browser/configure.zcml @@ -644,21 +644,16 @@ - - - + + + + + diff --git a/browser/node.py b/browser/node.py index c9ad267..3d44ab4 100644 --- a/browser/node.py +++ b/browser/node.py @@ -364,6 +364,9 @@ class NodeView(BaseView): def targetDownload(self): return self.targetView('download.html', 'download') + def targetRender(self): + return self.targetView('download.html', 'show') + @Lazy def virtualTarget(self): obj = self.virtualTargetObject diff --git a/browser/resource.py b/browser/resource.py index 24cd874..6d0d928 100644 --- a/browser/resource.py +++ b/browser/resource.py @@ -165,8 +165,6 @@ class ResourceView(BaseView): context = ti(context) data = context.data response = self.request.response - response.setHeader('Content-Type', context.contentType) - response.setHeader('Content-Length', len(data)) ct = context.contentType #if useAttachment or (not ct.startswith('image/') and ct != 'application/pdf'): if useAttachment: @@ -175,6 +173,11 @@ class ResourceView(BaseView): filename = NameChooser(getParent(self.context)).normalizeName(filename) response.setHeader('Content-Disposition', 'attachment; filename=%s' % filename) + response.setHeader('Content-Length', len(data)) + if ct.startswith('text/'): + response.setHeader('Content-Type', 'text/html') + return self.renderText(data, ct) + response.setHeader('Content-Type', ct) return data def download(self): diff --git a/common.py b/common.py index 5d96514..a9b3d97 100644 --- a/common.py +++ b/common.py @@ -165,6 +165,7 @@ class ResourceAdapterBase(AdapterBase): storageName = None storageParams = None + localFilename = None def getChildren(self): return []