概述
新购一个远程主机,centos系统,尝试创建vsftpd服务,一直没有通畅,于是干脆写了个python flask应用来上传文件:
import os
from flask import Flask, request, url_for, send_from_directory
#from werkzeug import secure_filename
from werkzeug.utils import secure_filename
ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif','txt','html','css','js','py','svg','zip'])
app = Flask(__name__)
#设置当前路径为上传文件存储的地方
app.config['UPLOAD_FOLDER'] = os.getcwd()
print(app.config['UPLOAD_FOLDER'])
#限定上传文件最大不超过16M
app.config['MAX_CONTENT_LENGTH'] = 16 * 1024 * 1024
html = '''
<!DOCTYPE html>
<title>文件上传</title>
<h1>文件上传</h1>
<form method='post' enctype='multipart/form-data'>
<input type='password' name='pswd' placeholder='密码'>
<input type='file' name='file'>
<input type='submit' value='上传文件到主机'>
</form>
'''
#判断文件类型是否符合要求
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':
pswd = request.form.get('pswd')
if pswd and pswd=='******':
file = request.files['file']
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
return html+filename+'已经上传成功!'
else:
return html+'密码不正确'
return html
if __name__ == '__main__':
app.run(host='127.0.0.1',port=80)
#app.run(host='0.0.0.0',port=80)
'''
如果直接在远程终端输入python yourflaskapp.py运行flask应用,关闭终端后flask应用也会终端退出,为了避免这一点,我们先安装tmux终端
yum install tmux
然后执行
tmux
终端开启后再输入
python yourflaskapp.py
这样关闭终端后,flask仍然在后台持续运行
可以查看80端口被那些进程占用
lsof -i:80
如果冲突则kill掉该进程即可
'''
最后
以上就是文静小蘑菇为你收集整理的python flask文件上传实现和ftp类似功能的全部内容,希望文章能够帮你解决python flask文件上传实现和ftp类似功能所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复