import os from flask import Flask, request from werkzeug import secure_filename # 獲取上傳文件的文件名 UPLOAD_FOLDER = r'D:\file' # 上傳路徑 ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif','doc']) # 允許上傳的文件類型 app = Flask(__name__) app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER def allowed_file(filename): # 驗證上傳的文件名是否符合要求,文件名必須帶點並且符合允許上傳的文件類型要求,兩者都滿足則返回 true 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'] # 獲取上傳的文件 if file and allowed_file(file.filename): # 如果文件存在並且符合要求則為 true filename = secure_filename(file.filename) # 獲取上傳文件的文件名 file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) # 保存文件 return '{} upload successed!'.format(filename) # 返回保存成功的信息 # 使用 GET 方式請求頁面時或是上傳文件失敗時返回上傳文件的表單頁面 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()