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搭建一個簡單的文件服務器
