文件上傳本地服務器,並生成URL


文件上傳本地服務器,並生成一個URL,可以通過這個url去訪問下載

  • 上傳本地服務器

  • 指定位置:

    • application.yml:
      file:
      upload:
      //是否開啟雲存儲
      enabledYun: false
      //上傳本地文件路徑
      filePath: D:\document\uploadTemp
      //配置本地服務器ip,公網ip
      hostAddress: 127.0.0.1
  • 上傳文件

private String uploadFile(MultipartFile file) {
        String fileDownloadUri = "";
        // 獲取文件名
        String fileName = file.getOriginalFilename();
        // 新文件名
        fileName = this.getName(fileName);
        //創建文件
        File dest = new File(fileSavePath + fileName);
        //判斷文件父目錄是否存在
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdirs(); //這里因為創建的是多級目錄,所以需要使用mkdirs()方法。使用mkdir()方法則文件夾創建不成功,會報找不到路徑錯誤。
        }
        try {
            //將文件內容寫入創建的文件中
            file.transferTo(dest);
            if (fileDownloadUri == "") {
                fileDownloadUri = "upload/" + fileName;
            } else {
                fileDownloadUri = fileDownloadUri + "," + "upload/" + fileName;
            }
        } catch (IOException e) {
            e.printStackTrace();
            return "";
        }

        //返回Url地址,以逗號分隔
        return fileDownloadUri;
      }
   /**
    * 獲取文件擴展名
    * 
    * @return string
    */
   private String getFileExt(String fileName) {
   	return fileName.substring(fileName.lastIndexOf("."));
   }

   /**
    * 依據原始文件名生成新文件名
    * @return
    */
   private String getName(String fileName) {
   	Random random = new Random();
   	return this.fileName = "" + random.nextInt(10000)
   			+ System.currentTimeMillis() + this.getFileExt(fileName);
   }
  • 新建一個類,讓這個類實現WebMvcConfigurer,進行映射配置
@Configuration
@EnableWebMvc
public class ConfigurerAdapter implements WebMvcConfigurer {
	@Value("${file.upload.filePath}")
	private String fileSavePath;
		
	@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
	     String fileSavePathUri = "file:" + fileSavePath.replace("\\", "/");
	     registry.addResourceHandler("/upload/**").addResourceLocations(fileSavePathUri);
	    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM