禾岑381 2024-03-01 19:08 采纳率: 50%
浏览 3
已结题

flask下载文件为什么文件名字只有一个txt

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

img

img

  • 写回答

2条回答 默认 最新

  • 关注

    禾岑381 晚上好🌙🌙🌙
    本答案参考通义千问

    在 Flask 中使用 send_from_directory 函数下载文件时,如果文件名显示不完整(例如只有 "txt" 而不是 "file.txt"),这通常是由于传入函数的文件名参数缺少完整的文件扩展名导致的。您需要确保传递给路由函数的文件名是完整的,包括点(.)和扩展名。

    问题分析:

    • 您的代码中 filename 1 这一行似乎有误,可能是复制粘贴过程中的错误,正确应该是 filename = '1.txt'(假设文件名确实是 "1.txt")或者直接使用接收到的 <filename> 参数。

    解决方案:

    1. 确保路由处理函数接收到了完整的文件名,包括扩展名。
    2. 修正您的代码:
    from flask import send_from_directory
    
    app.route('/download/<filename>')
    def download(filename):
        # 确保 filename 参数包含完整的文件名(包括扩展名)
        return send_from_directory(UPLOAD_PATH, filename, as_attachment=True)
    
    1. 当您在浏览器中访问 /download/1.txt 时,应该会下载名为 "1.txt" 的文件,而不是仅有 "txt" 的文件。

    注意事项:

    • 确保路径中的文件确实存在,并且提供的文件名与实际文件名完全匹配。
    • 如果前端在调用这个接口时没有正确地提供完整的文件名(如 ".txt" 部分丢失),那么您需要在后端进行补充或验证。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月9日
  • 已采纳回答 3月1日
  • 创建了问题 3月1日

悬赏问题

  • ¥15 券商软件上市公司信息获取问题
  • ¥100 ensp启动设备蓝屏,代码clock_watchdog_timeout
  • ¥15 Android studio AVD启动不了
  • ¥15 陆空双模式无人机怎么做
  • ¥15 想咨询点问题,与算法转换,负荷预测,数字孪生有关
  • ¥15 C#中的编译平台的区别影响
  • ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
  • ¥15 电脑蓝屏logfilessrtsrttrail问题
  • ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
  • ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?