Added:
ZopeChinaPak/trunk/at_pak.py (contents, props changed)
Modified:
ZopeChinaPak/trunk/__init__.py
Log:
添加IE中文文件下载乱码的处理
Modified: ZopeChinaPak/trunk/__init__.py
==============================================================================
--- ZopeChinaPak/trunk/__init__.py (original)
+++ ZopeChinaPak/trunk/__init__.py Wed Feb 8 22:49:30 2006
@@ -30,6 +30,11 @@
except ImportError:
pass
+try:
+ import at_pak
+except ImportError:
+ pass
+
import products
def initialize(context):
Added: ZopeChinaPak/trunk/at_pak.py
==============================================================================
--- (empty file)
+++ ZopeChinaPak/trunk/at_pak.py Wed Feb 8 22:49:30 2006
@@ -0,0 +1,27 @@
+# 处理IE中文件下载的乱码问题
+# 目前暂未考虑繁体编码用户,另外,参考 /Archetypes/utils.py 中的contentDispositionHeader方法
+
+# 暂时未启用
+
+def download(self, instance, REQUEST=None, RESPONSE=None):
+ file = self.get(instance)
+ if not REQUEST:
+ REQUEST = instance.REQUEST
+ if not RESPONSE:
+ RESPONSE = REQUEST.RESPONSE
+ RESPONSE.setHeader('Content-Type', self.getContentType(instance))
+ filename = self.getFilename(instance, fromBaseUnit=False)
+ if REQUEST.HTTP_USER_AGENT.find('MSIE') != -1:
+ if type(filename) is UnicodeType:
+ filename = filename.encode('gb18030')
+ else:
+ filename = filename.decode('utf8').encode('gb18030')
+ RESPONSE.setHeader('Content-Disposition',
+ 'attachment; filename="%s"' % filename)
+ RESPONSE.setHeader('Content-Length', self.get_size(instance))
+ return file.index_html(REQUEST, RESPONSE)
+
+from Products.Archetypes.Field import FileField
+# 可取消下面的这行注释,启用
+# FileField.download = download
+