1、Form表单要加个属性enctype="multipart/form-data"
头像上传: |
2、用ajax请求
2、用ajax请求
加上这两个字段
contentType: false,
processData: false,
* 头像上次ajax
*/
function uploadPic(){
var formData = new FormData($("#upload")[0]);
$.ajax({
url: 'uploadPic.do' , /*这是处理文件上传的servlet*/
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
alert("成功"+returndata);
$("#preview").attr("src","http://localhost:8082/upload/"+returndata);
//document.getElementById("showpic").src="UploadImage?picture=showpic";/*这是预览图片用的,自己在文件上传表单外添加*/
},
error: function (returndata) {
alert(returndata);
}
});
}
3、springmvc配置文件
UTF-8
32505856
4096
4、springmvc处理请求
Myfiles要跟前端input的name属性一样
@RequestMapping("uploadPic")
public void uploadPic(@RequestParam MultipartFile myfiles, HttpServletRequest request, HttpServletResponse response){
try {
String filename = myfiles.getOriginalFilename();
System.out.println(filename);
User user = (User) request.getSession().getAttribute("loginUser");
String newFilename = UUIDUtil.getUUID();
String absolutePath = "F://upload//";
String extName = filename.substring(filename.lastIndexOf("."));
myfiles.transferTo(new File(absolutePath+newFilename+extName)); //存到本地磁盘
response.getWriter().write(newFilename+extName);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}