Flask在上传文件的时候,视图函数里面,作为参数传给
save()
的路径,是从整个Flask项目的最外层开始算的。
假如你在第二级目录里创建了一个uploads目录,然后save('/uploads/xxx.txt')
,那么就会提示** IOError: [Errno 2] No such file or directory ** 错误。
save()
的路径参数应当是从第一级目录开始写起的。
如目录树1所示结构,
# views.py
@app.route('/uploads', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
file_ = request.files['file']
file_.save('uploads/aaa.txt')
...
那么这段代码运行后就会报错:
IOError: [Errno 2] No such file or directory: 'uploads/aaa.txt'
此时如果将参数路径修改为:'app/uploads/aaa.txt
',代码就能正常运行了。
如目录树2所示结构,(以下代码没有改变,此处只是再写一遍,这样你就不需要再向上翻看代码了(贴心如我(*__)* ))
# views.py
@app.route('/uploads', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
file_ = request.files['file']
file_.save('uploads/aaa.txt')
...
此时,这段代码运行后就没有错误了。
THE END