MultipartFile 对象的transferTo方法,用于文件保存(效率和操作比原先用FileOutStream方便和高效)
private static final String filePath = "xxxxxxxxxxxx"; @RequestMapping("/upload") public JsonData upload(@RequestParam("head_img") MultipartFile file, HttpServletRequest request){ String name = request.getParameter("name"); System.out.println("用户名"+name); //获取文件名 String filename = file.getOriginalFilename(); System.out.println("上传的文件名称"+filename); //获取文件后缀名 String suffixName = filename.substring(filename.lastIndexOf(".")); System.out.println("上传的文件后缀名称"+suffixName); //文件上传的路径 filename = UUID.randomUUID()+suffixName; System.out.println("修改后的文件名"+filename); File dest = new File(filePath+filename); try { file.transferTo(dest); return new JsonData("0","ok",filename); }catch (IOException e){ e.printStackTrace(); } return new JsonData("-1","fail",null);
jar包方式运行web项目的文件上传和访问处理
打包成jar包,需要增加maven依赖
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
如果没加相关依赖,执行maven打包,运行后会报错:no main manifest attribute, in XXX.jar
GUI:反编译工具,作用就是用于把class文件转换成java文件
3、文件上传和访问需要指定磁盘路径
application.properties中增加下面配置
1) web.images-path=/Users/jack/Desktop
2) spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,classpath:/test/,file:${web.upload-path}
4、文件服务器:fastdfs,阿里云oss,nginx搭建一个简单的文件服务器