本文实例为大家分享了python3-flask文件上传操作的具体代码,供大家参考,具体内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# -*- coding: utf-8 -*-
import os
import uuid
import platform
from flask import Flask,request,redirect,url_for
from werkzeug.utils import secure_filename
if platform.system() = = "Windows" :
slash = '\\'
else :
platform.system() = = "Linux"
slash = '/'
UPLOAD_FOLDER = 'upload'
ALLOW_EXTENSIONS = set ([ 'html' , 'htm' , 'doc' , 'docx' , 'mht' , 'pdf' ])
app = Flask(__name__)
app.config[ 'UPLOAD_FOLDER' ] = UPLOAD_FOLDER
#判断文件夹是否存在,如果不存在则创建
if not os.path.exists(UPLOAD_FOLDER):
os.makedirs(UPLOAD_FOLDER)
else :
pass
# 判断文件后缀是否在列表中
def allowed_file(filename):
return '.' in filename and \
filename.rsplit( '.' , 1 )[ 1 ] in ALLOW_EXTENSIONS
@app .route( '/' ,methods = [ 'GET' , 'POST' ])
def upload_file():
if request.method = = 'POST' :
#获取post过来的文件名称,从name=file参数中获取
file = request.files[ 'file' ]
if file and allowed_file( file .filename):
# secure_filename方法会去掉文件名中的中文
filename = secure_filename( file .filename)
#因为上次的文件可能有重名,因此使用uuid保存文件
file_name = str (uuid.uuid4()) + '.' + filename.rsplit( '.' , 1 )[ 1 ]
file .save(os.path.join(app.config[ 'UPLOAD_FOLDER' ],file_name))
base_path = os.getcwd()
file_path = base_path + slash + app.config[ 'UPLOAD_FOLDER' ] + slash + file_name
print (file_path)
return redirect(url_for( 'upload_file' ,filename = file_name))
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(host = '0.0.0.0' ,port = 5000 )
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/diyiday/article/details/80514135