Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
web2py/pydal.Download上传文件的原始文件名为汉字时出现上传文件错误_Web2py_Pydal - Fatal编程技术网

web2py/pydal.Download上传文件的原始文件名为汉字时出现上传文件错误

web2py/pydal.Download上传文件的原始文件名为汉字时出现上传文件错误,web2py,pydal,Web2py,Pydal,我正在使用web2py。我克隆了pydal的最新版本。我在表中定义了一个“上传”字段。然后我上传一个文件名为汉字的图像。到目前为止一切似乎都很好。然而,当我尝试使用下载功能访问上传的文件时,我得到了一个服务器错误。我找到了两种方法来避免这个错误。第一个解决方案是将fllename更改为英文字符,第二个解决方案是将pydal降级为嵌入到web2py2.14.6(2016年5月10日发布)中的旧版本。所以我猜最新的pydal在处理带有中文字符的文件名时出了问题。希望得到你的答案。多谢各位 这里的问题

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

这里的问题是否真的与HTTP有关?因为response.download会将您的文件名放入,尽管许多浏览器都接受它,但这里实际上只接受ASCII

如果这是一个问题,这里的解决方案是传递一个下载文件名,在这个文件名中对汉字进行百分比编码。因此,在下载功能中,您可以执行以下操作:

def download():
    import urllib
    return response.download(request, db, download_filename=urllib.quote(request.args(0))
我还没有真正测试过它,但它应该可以工作