我正在使用web2py。我克隆了最新版本的pydal。我在我的表中定义了一个'upload‘字段。然后上传一个文件名为汉字的图片。到目前为止,一切似乎都很好。然而,当我尝试使用下载功能访问上传的文件时,我得到了一个服务器错误。我找到了两个解决方案来避免这个错误。第一个解决方案是将fllename更改为英文字符,第二个解决方案是将pydal降级为嵌入到web2py(2.14.6,2016年5月10日发布)中的旧版本。所以我猜最新的pydal在处理带有中文字符的文件名时有些地方不对劲。希望能得到你的答案。谢谢。
发布于 2017-03-02 21:34:41
这里的问题是否真的与HTTP有关?因为response.download会将您的文件名放入Content-Disposition中,虽然许多浏览器都接受它,但在这里实际上只接受ASCII码。
如果这就是问题所在,这里的解决方案是传递一个download_filename,其中对中文字符进行百分号编码。所以在你的下载函数中,你可以这样做:
def download():
import urllib
return response.download(request, db, download_filename=urllib.quote(request.args(0))我还没有真正测试过它,但它应该可以工作。
https://stackoverflow.com/questions/42545871
复制相似问题