MultipartFile上传图片的写法,记录一下。

上传图片的工具:

代码:

 1 import org.springframework.stereotype.Component;
 2 import org.springframework.web.multipart.MultipartFile;
 3 
 4 import javax.servlet.http.HttpServletRequest;
 5 import javax.servlet.http.HttpSession;
 6 import java.io.File;
 7 import java.io.IOException;
 8 import java.text.SimpleDateFormat;
 9 import java.util.Date;
10 import java.util.UUID;
11 
12 @Component
13 public class HttpRequestUploadServiceImpl implements HttpRequestUploadService {
14 
15     public void uploadImage(MultipartFile file, HttpSession session, HttpServletRequest request) throws IOException {
16         System.out.println("开始上传图片");
17         request.setCharacterEncoding("utf-8");
18         if (null != file) {
19             //获得当前项目所在路径
20             String pathRoot = request.getSession().getServletContext().getRealPath("");
21             System.out.println("当前项目所在路径:" + pathRoot);
22             //生成uuid作为文件名称
23             String uuid = UUID.randomUUID().toString().replaceAll("-", "");
24             System.out.println("文件名称:" + uuid);
25             //获得文件类型(判断如果不是图片文件类型,则禁止上传)
26             String contentType = file.getContentType();
27             System.out.println("文件类型:" + contentType);
28             //获得文件后缀名称
29             String imageName = contentType.substring(contentType.indexOf("/") + 1);
30             System.out.println("文件后缀名称:" + imageName);
31 
32             String filePath = "F:\\";
33             //根据日期来创建对应的文件夹
34             String datePath = new SimpleDateFormat("yyyy/MM/dd/").format(new Date());
35             System.out.println("日期:" + datePath);
36             //根据日期分类来创建对应的文件夹
37             String path = filePath + datePath;
38             //如果不存在,则创建新文件夹
39             File f = new File(path);
40             if (!f.exists()) {
41                 f.mkdirs();
42             }
43             //新生成的文件名称
44             String fileName = uuid + "." + imageName;
45             System.out.println("新生成的文件名称:" + fileName);
46             session.setAttribute("fileName", fileName);
47             //图片保存的完整路径
48             String pathName = path + fileName;
49             System.out.println(pathName);
50             //图片的静态资源路径
51             String staticPath = "/upload/images/" + fileName;
52             System.out.println("静态资源路径:" + staticPath);
53             //复制操作
54             //将图片从源位置复制到目标位置
55             file.transferTo(new File(pathName));
56         }
57     }
58 }

猜你喜欢

转载自www.cnblogs.com/wangquanyi/p/11328879.html
今日推荐