文件上传
import base64 os time from flask Flask,render_template,request,jsonify,send_from_directory,abort from werkzeug.utils secure_filename app = Flask(__name__) UPLOAD_FOLDER = 'upload' app.config[UPLOAD_FOLDER'] = UPLOAD_FOLDER basedir = os.path.abspath(os.path.dirname(__file__)) ALLOWED_EXTENSIONS = set([txt',pngjpgxlsJPGPNGxlsxgifGIF]) # 判断文件的后缀 def allowed_file(filename): return .' in filename and filename.rsplit(in ALLOWED_EXTENSIONS 用于测试上传 @app.route(/test/upload) upload_test(): return render_template(upload.html) 上传文件 @app.route(/api/uploadPOST'],strict_slashes=False) api_upload(): file_dir = os.path.join(basedir,app.config[]) if not os.path.exists(file_dir): os.makedirs(file_dir) f = request.files[myfile'] 从表单的file字段获取文件,myfile为该表单的name值 if f and allowed_file(f.filename): fname = secure_filename(f.filename) print(fname) ext = fname.rsplit(] unix_time = int(time.time()) new_filename = str(unix_time) + ' + ext f.save(os.path.join(file_dir,new_filename)) return jsonify({"errno": 0,1)">errmsg": 上传成功"}) else: ": 1001,1)">上传失败}) if __name__ == __main__: app.run(debug=True)
上面我们写了一个上传接口,我们为了测试这个接口是否工作正常,还得写一个页面(upload.html):
<form id=form1" method=post" action=" enctype=multipart/form-data"> <div> <input id=File1" type=file" name="/> <input type=submit">提交</input> </div> </form>
文件下载
文件下载要比上传简单的多,核心代码如下:
@app.route(/api/download/<filename>GET download(filename): if request.method == if os.path.isfile(os.path.join(,filename)): return send_from_directory(True) abort(404)
原文地址:https://www.cnblogs.com/tracydzf
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。