首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >上传文件原始文件名为中文时,web2py/pydal.Download上传文件错误

上传文件原始文件名为中文时,web2py/pydal.Download上传文件错误
EN

Stack Overflow用户
提问于 2017-03-02 10:42:10
回答 1查看 78关注 0票数 0

我正在使用web2py。我克隆了最新版本的pydal。我在我的表中定义了一个'upload‘字段。然后上传一个文件名为汉字的图片。到目前为止,一切似乎都很好。然而,当我尝试使用下载功能访问上传的文件时,我得到了一个服务器错误。我找到了两个解决方案来避免这个错误。第一个解决方案是将fllename更改为英文字符,第二个解决方案是将pydal降级为嵌入到web2py(2.14.6,2016年5月10日发布)中的旧版本。所以我猜最新的pydal在处理带有中文字符的文件名时有些地方不对劲。希望能得到你的答案。谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-03-02 21:34:41

这里的问题是否真的与HTTP有关?因为response.download会将您的文件名放入Content-Disposition中,虽然许多浏览器都接受它,但在这里实际上只接受ASCII码。

如果这就是问题所在,这里的解决方案是传递一个download_filename,其中对中文字符进行百分号编码。所以在你的下载函数中,你可以这样做:

代码语言:javascript
复制
def download():
    import urllib
    return response.download(request, db, download_filename=urllib.quote(request.args(0))

我还没有真正测试过它,但它应该可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42545871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档