• 文件上传本地服务器,并生成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);
    	    }
    }
    
  • 相关阅读:
    用于聚类的信用卡数据
    微信支付 参考
    小程序中 自定义组件的使用
    小程序页面跳转传参
    小程序人脸核身
    ant desgin pro 的项目中 封装的 socket.js
    vscode红色波浪线
    ant desgin pro 的项目中 请求之封装
    小程序的请求 方式封装
    浏览器网页链接打开本地exe客户端程序 及 无法导入,指定文件不是注册脚本.您的注册表编辑器只能导入2进位注册文件
  • 原文地址:https://www.cnblogs.com/mengzhao/p/13921335.html
Copyright © 2020-2023  润新知