python3 flask實現(xiàn)文件上傳功能
本文實例為大家分享了python3-flask文件上傳操作的具體代碼,供大家參考,具體內(nèi)容如下
# -*- 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
#判斷文件夾是否存在,如果不存在則創(chuàng)建
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參數(shù)中獲取
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)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python3.8中關(guān)于sklearn問題(win10)
這篇文章主要介紹了python3.8中關(guān)于sklearn問題(win10),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
caffe的python接口繪制loss和accuracy曲線
這篇文章主要為大家介紹了caffe的python接口繪制loss和accuracy曲線示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
Django模板變量如何傳遞給外部js調(diào)用的方法小結(jié)
這篇文章主要給大家介紹了關(guān)于Django模板變量如何傳遞給外部js調(diào)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-07-07
Python聊天室?guī)Ы缑鎸崿F(xiàn)的示例代碼(tkinter,Mysql,Treading,socket)
這篇文章主要介紹了Python聊天室?guī)Ы缑鎸崿F(xiàn)的示例代碼(tkinter,Mysql,Treading,socket),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Python使用正則表達式報錯:nothing?to?repeat?at?position?0的解決方案
今天在使用python 正則模塊匹配字符串時遇到了這個問題,分享給大家,這篇文章主要給大家介紹了關(guān)于Python使用正則表達式報錯nothing?to?repeat?at?position?0的解決方案,需要的朋友可以參考下2023-03-03
10分鐘學(xué)會使用python實現(xiàn)人臉識別(附源碼)
這篇文章主要介紹了10分鐘學(xué)會使用python實現(xiàn)人臉識別(附源碼),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03
python忽略警告(warning)的3種方法小結(jié)
python開發(fā)中經(jīng)常遇到報錯的情況,但是warning通常并不影響程序的運行,而且有時特別討厭,下面我們來說下如何忽略warning錯誤,這篇文章主要給大家介紹了關(guān)于python忽略警告(warning)的3種方法,需要的朋友可以參考下2023-10-10

