这段代码也是百度看来的!自己做了一些改动,如果是layui实现上传的话就更好用,配合layui的JS来实现就更简单了!
看代码!
File tempPathFile;
@RequestMapping("upload")
@ResponseBody
public Map<String, Object> uploadImg(Long classesId,HttpServletRequest request) throws Exception{
try {
// Create a factory for disk-based file items
DiskFileItemFactory factory = new DiskFileItemFactory();
// Set factory constraints
factory.setSizeThreshold(4096); // 设置缓冲区大小,这里是4kb
factory.setRepository(tempPathFile);// 设置缓冲区目录
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// Set overall request size constraint
upload.setSizeMax(4194304); // 设置最大文件尺寸,这里是4MB
List<FileItem> items = upload.parseRequest(request);// 得到所有的文件
System.out.println(items.size());
Iterator<FileItem> i = items.iterator();
Map<String, Object> result = new HashMap<>();
while (i.hasNext()) {
FileItem fi = (FileItem) i.next();
String fileName = fi.getName();
if (fileName != null) {
File fullFile = new File(new String(fi.getName().getBytes(), "utf-8")); // 解决文件名乱码问题
File url = new File(config.getUploadDir());
if(!url.exists()) {
url.mkdirs();
}
System.out.println(config.getUploadDir()+"//"+fullFile.getName());
File savedFile = new File(config.getUploadDir()+"/"+fullFile.getName());
Thumbnails.of(fi.getInputStream()).size(400, 400).toFile(savedFile);
//File savedFile = new File(config.getUploadDir(), fullFile.getName());
result.put("name", fullFile.getName());
result.put("code", 1);
/*fi.write(savedFile); */
}
}
return result;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
至于前端代码的话layui有自己的上传!其他的上传就根据数据来看了!
不喜勿喷!我是个小萌新,我自己上传的代码都比较简单都能看的懂!