flask下载文件,进去download页面后,为什么下载的文件只有一个txt,那个点点呢?不应该是点txt吗?把下载好的文件名字改成1.txt之后里面的内容是正确的,只是为什么是这种名字?到底为什么啊(绝望)


flask下载文件,进去download页面后,为什么下载的文件只有一个txt,那个点点呢?不应该是点txt吗?把下载好的文件名字改成1.txt之后里面的内容是正确的,只是为什么是这种名字?到底为什么啊(绝望)


禾岑381 晚上好🌙🌙🌙
本答案参考通义千问
在 Flask 中使用 send_from_directory 函数下载文件时,如果文件名显示不完整(例如只有 "txt" 而不是 "file.txt"),这通常是由于传入函数的文件名参数缺少完整的文件扩展名导致的。您需要确保传递给路由函数的文件名是完整的,包括点(.)和扩展名。
问题分析:
filename 1 这一行似乎有误,可能是复制粘贴过程中的错误,正确应该是 filename = '1.txt'(假设文件名确实是 "1.txt")或者直接使用接收到的 <filename> 参数。解决方案:
from flask import send_from_directory
app.route('/download/<filename>')
def download(filename):
# 确保 filename 参数包含完整的文件名(包括扩展名)
return send_from_directory(UPLOAD_PATH, filename, as_attachment=True)
/download/1.txt 时,应该会下载名为 "1.txt" 的文件,而不是仅有 "txt" 的文件。注意事项: