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搭建一个简单的文件服务器