当前位置: 代码迷 >> 综合 >> flask中上传 保存文件
  详细解决方案

flask中上传 保存文件

热度:77   发布时间:2023-10-23 15:39:36.0

# -*- coding: utf-8 -*-
import os
from flask import Flask, request, redirect, url_for, send_from_directory
from werkzeug import secure_filenameUPLOAD_FOLDER = 'static/Uploads'#文件下载路径
ALLOWED_EXTENSIONS = set(['txt', 'pdf','jpg'])#文件允许上传格式
#ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])

app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER#设置文件下载路径

def allowed_file(filename):#通过将文件名分段的方式查询文件格式是否在允许上传格式范围之内
    return '.' in filename and filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS@app.route('/', methods=['GET', 'POST'])
def upload_file():if request.method == 'POST':#当以post方式提交数据时
        file = request.files['file']#将上传的文件赋予file
        if file and allowed_file(file.filename):#当确认有上传文件并且格式合法
            filename = secure_filename(file.filename)#使用secure_filename()让文件名变得安全
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))#保存文件,也可以直接写成f.save(os.path.join(UPLOAD_FOLDER, fname))
            #
            return '''<h1>hello</h1>'''
        else:return '<h1>fail</h1>'
    return '''
    <!doctype html>
    <title>Upload new File</title>
    <h1>Upload new File</h1>
    <form action="" method=post enctype=multipart/form-data>
      <p><input type=file name=file>
         <input type=submit value=Upload>
    </form>
    '''

if __name__ == '__main__':app.run(debug=True)


以上则完成了各种格式文件的上传