function ajaxUploadFile(){
//创建FormData对象,初始化为form表单中的数据。需要添加其他数据可使用formData.append("property", "value");
var formData = new FormData($('#regForm')[0]); // $('#regForm')[0]
//ajax异步上传
$.ajax({
url: "/upload.do",
type: "POST",
data: formData, // 1、json对象{} 2、json String 3、formData对象
xhr: function () { //获取ajaxSettings中的xhr对象,为它的upload属性绑定progress事件的处理函数
myXhr = $.ajaxSettings.xhr();
if (myXhr.upload) { //检查upload属性是否存在
//绑定progress事件的回调函数 给
myXhr.upload.addEventListener('progress', progressHandlingFunction, false);
}
return myXhr; //xhr对象返回给jQuery使用
},
success: function (result) {
result = JSON.parse(result);
$("#userImg").attr("src", result.url); // 前端显示上传完成的图片
document.regForm.picPath.value = result.url;
// $("#result").html(result);
},
contentType: false, //必须false才会自动加上正确的Content-Type
processData: false //必须false才会避开jQuery对 formdata 的默认处理
});
}
@app.route('/upload.do', methods=['POST', 'GET'], strict_slashes=False)
def uploadFile():
# 后缀需要检查的
file = request.files.get('upload')
if file:
try:
file.save(os.path.dirname(__file__) + os.sep + '..' + os.sep + 'static' + os.sep + 'uploads'+ os.sep + file.filename) # 保存文件到upload目录
except Exception as e:
return json.dumps({'uploaded': 0, 'fileName': "", 'url': ""})
pass
return json.dumps({'uploaded': 1, 'fileName':file.filename, 'url': os.sep + 'static' + os.sep + 'uploads'+ os.sep + file.filename})
else:
return json.dumps({'uploaded': 0, 'fileName': "", 'url': ""})
pass