zoukankan      html  css  js  c++  java
  • 文件上传本地服务器,并生成URL

    文件上传本地服务器,并生成一个URL,可以通过这个url去访问下载

    • 上传本地服务器

    • 指定位置:

      • application.yml:
        file:
        upload:
        //是否开启云存储
        enabledYun: false
        //上传本地文件路径
        filePath: D:documentuploadTemp
        //配置本地服务器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);
    	    }
    }
    
  • 相关阅读:
    Flutter-常用插件庫
    Flutter-發送短信驗證碼
    Flutter-Radio單選框
    Flater-Provide狀態管理
    android sdk安装
    Android Studio的安装
    Flutter SDK安装(windows)
    Flutter-dialog彈出框
    python中的迭代器与生成器
    python闭包与装饰器
  • 原文地址:https://www.cnblogs.com/mengzhao/p/13921335.html
Copyright © 2011-2022 走看看