1.基础配置,请看https://blog.csdn.net/Sun6Zero/article/details/81319831篇文章
2.直接上代码,前端
<div>
<input id="name" type="text" />
</br>
<input id="pwd" type="text" />
</br>
<input id="age" type="text" />
</br>
<input type="file" name="file" id="file-img"/>
<br>
<input type="submit" id="submit" value="提交" />
</div>
<script>
$(function () {
$("#submit").click(function () {
var name=$("#name").val();
var pwd=$("#pwd").val();
var age=$("#age").val();
// 生成一个ssm对象
var ssm={};
ssm.name=name;
ssm.pwd=pwd;
ssm.age=age;
// 获取上传的图片文件流 [0].files ssss,注意
var fileImg=$("#file-img")[0].files[0];
// 生成表单对象,用于接收参数并传递给后台
var formData = new FormData();
//转换成为一个 Json的字符串
formData.append("ssm",JSON.stringify(ssm));
formData.append("fileImg",fileImg);
console.log(formData.get("ssm"));
$.ajax({
url : "/tijiao",
type : 'POST',
data : formData,
contentType : false,
processData : false,
cache : false,
success : function(data) {
alert("chenggong!");
if (data.success) {
$.toast('提交成功!');
}
}
});
})
})
</script>
3.后端,处理
package com.sun.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sun.beans.Person;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
* create by Sun
* 2018/8/6
*/
@Controller
public class photoUpload2 {
@RequestMapping(value = "/tijiao",method = RequestMethod.POST)
@ResponseBody
public Map<String,Object> submit(HttpServletRequest request){
Map<String,Object> map=new HashMap<>();
String str=request.getParameter("ssm");
/**
* CommonsMultipartFile fileImg=null;
* Maven: org.springframework:spring-web:4.3.7.RELEASE] org.springframework.web.multipart.commons public class CommonsMultipartFile extends Object implements MultipartFile, Serializable
*/
/**
* 看一下他的构造函数
* CommonsMultipartResolver 的构造方法传入的是servletContext()
*/
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
CommonsMultipartFile fileImg=null;
if(commonsMultipartResolver.isMultipart(request)){
/**
* 转成能够获取流的 MultipartHttpServletRequest的 请求
*/
MultipartHttpServletRequest multipartHttpServletRequest=(MultipartHttpServletRequest)request;
fileImg= (CommonsMultipartFile) multipartHttpServletRequest.getFile("fileImg");
}
try {
InputStream fileImgInputStream = fileImg.getInputStream();
File dest=new File("E:/test1/");
if(!dest.exists()){
dest.mkdirs();
}
File dest1=new File(dest,""+ UUID.randomUUID().toString()+fileImg.getOriginalFilename().substring(fileImg.getOriginalFilename().lastIndexOf(".")));
byte[] bytes=new byte[1024];
int len=-2;
OutputStream fileOutputStream=new FileOutputStream(dest1);
while ((len=fileImgInputStream.read(bytes))!=-1){
fileOutputStream.write(bytes,0,len);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
}
System.out.println(fileImg.getOriginalFilename()+" "+"fileImg");
System.out.println(str+"xxxxxxxxxx");
ObjectMapper mapper=new ObjectMapper();
try {
//Json数据转换为 一个对象
Person person1 =(Person) mapper.readValue(str, Person.class);
System.out.println(person1);
} catch (IOException e) {
System.out.println("失败");
e.printStackTrace();
}
map.put("test","ok");
return map;
}
}