首页 > 其他 > 详细

在使用flask下载文件时会出现的一个文件下载不到的问题

时间:2015-10-23 19:00:46      阅读:365      评论:0      收藏:0      [点我收藏+]
from flask import send_from_directory
@app.route(‘/uploads/<filename>‘)
def uploaded_file(filename):
    return send_from_directory(app.config[‘UPLOAD_FOLDER‘],
                               filename)
                               
genericpath.py 如果系统安装了这个组件的话:
会替换系统自带的path功能,导致,path失效了。最终会找不到文件。
代码只有这样简短的几句话而已。就是这个os.path.isfile会有问题。所以,放在uploaded_file中来完成这个动作,就可以了
"""
filename = safe_join(directory, filename)
if not os.path.isfile(filename):
    raise NotFound()
options.setdefault(‘conditional‘, True)
return send_file(filename, **options)             
最终的代码类似于这个样子:
#filename = flask.safe_join(UPLOAD_FOLDER, filename)
print(flask.safe_join(UPLOAD_FOLDERS,secure_filename(filename)))
print(os.path.isfile(filename))
return flask.send_file(flask.safe_join(UPLOAD_FOLDERS,secure_filename(filename)),as_attachment=True)

 从现象上看,好像是genericpath.py将python自己带的path这个类重写了,导致所有对path的操作,都指向了genericpath这个里面,这个类的处理又和系统自带的有些不太一样,所以会导致相同的方法返回值完全不同的情况,

比如:os.path.isfile这个方法执行时,同样的一个文件,会得出不同的结果。

在使用flask下载文件时会出现的一个文件下载不到的问题

原文:http://my.oschina.net/u/1462124/blog/521300

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!