我正在尝试建立一个网站,它有一个下载资源的页面,碰巧我的本地flask版本可以完美地找到任何文件名(当使用send_from_directory()时),但是一旦部署到PythonAnywhere,它就不能用于带有西班牙口音字符的文件名,如á。
我猜这与unicode有关,但我找不到如何修复它( pythonanywhere的日志似乎没有显示任何内容,因为flask只是向用户提供了一个“找不到”页面)。
...and我真的很希望在人们下载的文件名中有这些重音(它们是anki甲板,其中一些是为了教育目的,只是在甲板名称中提供糟糕的口音是错误的)。
我的代码如下所示:
@app.route('/anki/d/<file>')
def d_anki(file):
if file == "verbscat":
ankideck = "[Rusca] Temps Verbals Catalans.apkg"
elif file == "irregular":
ankideck = "[Rusca] Verbs Irregulars Anglès.apkg"
# ...
else:
return f"The file {file} wasn't found."
return send_from_directory("./static/anki/", ankideck, as_attachment=True, cache_timeout=0)(然后我通过<a href="/anki/d/irregular" ...>在一个按钮中链接到这个url )
发布于 2020-05-17 21:31:28
哦,我刚刚意识到,通过在send_from_directory的参数中添加attachment_filename="Whatever I want to call it",我可以为下载的文件选择一个不同的名称。
所以我想我们可以解决这个问题(让原始文件具有简单的非重音名称,然后添加正确的名称)。
if file == "irregular":
ankideck = "irregular.apkg"
name = "[Rusca] Verbs Irregulars Anglès.apkg"
# ...
return send_from_directory("./static/anki/", ankideck, as_attachment=True, attachment_filename=name cache_timeout=0)https://stackoverflow.com/questions/61852612
复制相似问题