文件上传本地服务器,并生成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);
	    }
}
posted @ 2020-11-03 17:09  meng_zhao  阅读(2936)  评论(0编辑  收藏  举报