1.场景还原
近期,由于项目需求需要上传图片logo,笔者在探索的过程中遇到过很多坑,今晚就把个人经验分享出来尽量少让博友脑壳疼
2.准备工作
①选择一个专门存储图片的服务器,这里我选择了第三方七牛云存储,真心感觉不错!
②前端与后台采用Ajax交互
3.前端代码
①代码分析
File upload
upload function getUpload(){ var formData =newFormData();formData.append('file',$('#file')[0].files[0]);$.ajax({ url:'http://localhost:8080/qiniu/upload',type:'POST',dataType:"json",cache:false,data: formData,processData:false,contentType:false}).done(function(res) { alert(res.data);document.getElementById("img").src = res.data;}).fail(function(res) { alert("fail");});}
②重点分析
append()的第二个参数应是文件对象,即$('#file')[0].files[0]。contentType也要设置为‘false’。
从代码$('#file')[0].files[0]中可以看到一个标签能够上传多个文件,只需要在里添加multiple或multiple="multiple"属性。对了这里的dataType一定别忘了写json,不然会解析失败的。
③看效果
4.后台代码
①导入相关依赖
com.google.code.gsongson2.8.0com.squareup.okhttp3okhttp3.6.0com.squareup.okiookio1.11.0com.qiniuqiniu-java-sdk7.1.3commons-iocommons-io2.3commons-fileuploadcommons-fileupload1.2.2
②定义七牛上传图片并返回外链的方法
/*** Created by zhangxing on 2017/6/7.*/public classQi