1.在springmvc-config.xml文件下配置
<!-- 4.配置问价上传解析器MultipartResolver -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置请求编码方式 必须折磨配置,这是规定-->
<property name="defaultEncoding" value="UTF-8"></property>
</bean>
2.表单
选择文件:<input type="file" id="file1" /><br />
<input type="button" id="upload" value="上传" />
<img id="imgWait" style="width:100px;height:100px;" />
<input type="text" id="logo" name="logo">
3.后台接受
// 上传图片(编辑器使用)
@ResponseBody
@RequestMapping(value = "/getImg")
public String getImg(HttpServletRequest request)
throws IllegalStateException, IOException {
Map<String, Object> map = new HashMap<>();
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(
request.getSession().getServletContext());
if (multipartResolver.isMultipart(request)) {
MultipartHttpServletRequest mreq = (MultipartHttpServletRequest) request;
Iterator<String> fileNamesIter = mreq.getFileNames();
while (fileNamesIter.hasNext()) {
MultipartFile file = mreq.getFile(fileNamesIter.next());
if (file != null) {
String myFileName = file.getOriginalFilename();
System.out.println("我的文件名字为" + myFileName);
if (myFileName.trim() != "") {
String fileName = file.getOriginalFilename();
String fileBaseName = fileName.substring(0,
fileName.lastIndexOf("."));
String fileExt = fileName.substring(
fileName.lastIndexOf(".") + 1).toLowerCase();
SimpleDateFormat df = new SimpleDateFormat(
"yyyyMMddHHmmss");
String newFileName = df.format(new Date());
String fileNames = newFileName
+ new Random().nextInt(1000) + "." + fileExt;
// String filePath = request.getSession()
// .getServletContext().getRealPath("E")
// + "\\img\\" + fileNames; //获取项目根目录
String filePath = "E:\\img\\" + fileNames; //自定义目录,不一定在那个硬盘的目录
System.out.println(filePath.replace("\\\\", "\\"));
File localFile = new File(
filePath.replace("\\\\", "\\"));
// 如果不存在则创建文件夹
if (!localFile.exists()) {
System.out.println("创建文件夹");
localFile.mkdirs();
}
file.transferTo(localFile);
// 拼接图片路径
// fileNames = "http://localhost:8080/shop365/img/"
// + fileNames;
map.put("name", fileNames);
map.put("path", fileNames);
String str = JSONObject.fromObject(map).toString();
System.out.println("返回路径" + str);
return str;
}
}
}
}
return "";
}