首先请看templates中的html模板
特别要注意,模板中必须要使用 enctype="multipart/form-data" , 否则form不会做任何事情
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="" method="post" enctype="multipart/form-data"> <p> <input type="file" name="file"> <input type =submit value="upload"> </p> </form> </body> </html>
使用request.files 模块实现文件上传
并使用os中的path
from flask import Flask, request,make_response,render_template, redirect, url_for from werkzeug.utils import secure_filename # 使用这个是为了确保filename是安全的 from os import path
实现代码
@app.route("/upload",methods=['GET','POST']) def upload(): if request.method=='POST': f = request.files["file"] base_path = path.abspath(path.dirname(__file__)) upload_path = path.join(base_path,'static/uploads/') file_name = upload_path + secure_filename(f.filename) f.save(file_name) return redirect(url_for('upload')) return render_template('upload.html')
初次执行代码前,需要手动在static目录下创建uploads目录
效果展示如下:
文件上传结果如下:
作者:孙宏志
链接:http://www.jianshu.com/p/31f0f3a3b22d
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
flask中如何实现文件上传
最新推荐文章于 2024-09-10 07:16:38 发布