1、html 代码
<div> ???????<form id="uploadForm" enctype="multipart/form-data" > ???????????<div> ???????????????<input type="file" name="file" value="" style="color: white"> ???????????????<input type="button" value="上传" id="upFileBtn"> ???????????</div> ???????</form> ?</div> ???
注:1、html 部分主要是一个form表单,其中表单的enctype = "multipart/form-data" 必须要有。
2、由于我的页面背景颜色设置成黑色,所以字体颜色选了白色,这个无伤大雅。
var up_file = function () {var formData = new FormData($(‘#uploadForm‘)[0]);$.ajax({ ???url:"/test/up_file", ???type: "POST", ???data: formData, ???async: true, ???cashe: false, ???contentType:false, ???processData:false, ???success:function (returndata) { ???????alert(returndata)
},
error: function (returndata) {
alert("上传失败!")
})
注:如果要用ajax上传文件,则要用FormData将文件转化为FormData对象。
3、flask部分
@test.route(‘/up_file‘, methods=[‘GET‘, ‘POST‘])def up_file(): ???if request.method == "POST": ???????file = request.files[‘file‘] ??????# ?file_name = "test.csv" ??????file_name = file.filename ???????file.save(os.path.join(‘templates\\files‘, file_name)) ???????return ‘上传成功‘
注:1、本文没有将蓝本部分写出来,相信路由的配置还是不难的。
2、本代码将文件存在服务器的templates下files文件夹中,可以直接给文件取个新名字,也可以用rerquest.files[‘file‘].filename获取上传文件时的名字。
flask jQuery ?ajax 上传文件
原文地址:https://www.cnblogs.com/Frange/p/8930688.html