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