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

Posted wangquanyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 

 

以上是关于MultipartFile上传图片的写法,记录一下。的主要内容,如果未能解决你的问题,请参考以下文章

记录:如何解决MultipartFile类的transferTo()上传图片报“系统找不到指定的路径“问题亲测有效

MultipartFile上传文件数据库保存进了但是target里面没有图片?

SpringMvc的MultipartFile上传文件小结

el-upload上传图片

springMVC实现 MultipartFile 多文件上传,StandardMultipartHttpServletRequest上传文件,在请求中上传文件,比如上传图片

base64文件转MultipartFile文件