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 多文件上传,StandardMultipartHttpServletRequest上传文件,在请求中上传文件,比如上传图片