flask中如何实现文件上传

来源:互联网 发布:奥运会开幕式 知乎 编辑:程序博客网 时间:2024/06/08 02:41

首先请看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_forfrom 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目录

效果展示如下:


image.png

文件上传结果如下:



作者:孙宏志
链接:http://www.jianshu.com/p/31f0f3a3b22d
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
阅读全文
0 0
原创粉丝点击