文章目录
-
- 引言
- 使用Python搭建文件上传服务器
- 总结
引言
介绍一个用python搭建简易文件上传服务的方法,只是为了方便, 由于太过简易,甚至没有考虑安全因素,请大家慎用^^……。
笔者使用文件上传服务器的原因:
一般的文件传输会使用ssh 或者是ftp , 这是非常方便的, 但是有时因为某种条件的限制, 无法直接通过ssh或者ftp来传输文件, 这个时候可以考虑使用http 的方式来上传文件。
使用Python搭建文件上传服务器
http://www.coolpython.net/flask_tutorial/basic/flask-upload.html
https://github.com/kwsy/studyflask/tree/master/form
- app.py 代码脚本如下
import os
from flask import Flask, request, render_template, redirect
from werkzeug.utils import secure_filename
app = Flask(__name__)
app.config['MAX_CONTENT_LENGTH'] = 300 * 1024 * 1024
ALLOWED_EXTENSIONS = set(['json','dat','txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif', 'tar', 'zip', 'jks', 'crt'])
UPLOAD_FOLDER = './upload'
def allowed_file(filename):
return '.' in filename and
filename.rsplit('.', 1)[1] in ALLOWED_EXTENSIONS
@app.route('/uploadfile', methods=['POST', 'GET'])
def do_upload():
if request.method == 'POST':
file = request.files['file']
if file and allowed_file(file.filename):
# filename = secure_filename(file.filename)
filename = file.filename
file.save(os.path.join(UPLOAD_FOLDER, filename))
return render_template('upload.html')
if __name__ == '__main__':
app.run(host='0.0.0.0',debug=True)
- 新建templates 文件夹,并在该文件夹下新建文件 upload.html
DOCTYPE html>
html lang="en">
head>
meta charset="UTF-8">
title>上传文件title>
head>
body>
form action="uploadfile" method=post enctype=multipart/form-data>
p>input type=file name=file>
input type=submit value=Upload>
form>
body>
html>
- 新建upload 文件夹(与app.py同级目录), 用于存储保存的文件
总结
注意实例中使用的监听地址是 ‘0.0.0.0’, 请不要在全网开放, 这样会有安全风险。