若依分离版文件上传后端逻辑分析

阅读: 评论:0

若依分离版文件上传后端逻辑分析

若依分离版文件上传后端逻辑分析

若依已经将文件上传的后端方法封装完毕

com.llermon.CommonController 下uploadFile方法

开始debug调试

一 .获取文件上传路径

**

   // 上传文件路径String filePath = UploadPath();

进入RuoYiConfig类下找到getUploadPath()方法

 /*** 获取上传路径*/public static String getUploadPath(){return getProfile() + "/upload";}public static String getProfile(){return profile;}/** 上传路径 */private static String profile;

其中静态变量profile为 配置文件l 下更改(注解@ConfigurationProperties获取配置文件中参数)

得到filePath

二. 获取新的文件名

String fileName = FileUploadUtils.upload(filePath, file);

FileUploadUtils(文件上传工具类下)upload 方法

/*** 根据文件路径上传** @param baseDir 相对应用的基目录* @param file 上传的文件* @return 文件名称* @throws IOException*/public static final String upload(String baseDir, MultipartFile file) throws IOException{try{return upload(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);}catch (Exception e){throw new Message(), e);}}

upload(baseDir, file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION)
传入文件路径,文件流,允许传入文件格式

 /*** 文件上传** @param baseDir 相对应用的基目录* @param file 上传的文件* @param allowedExtension 上传文件类型* @return 返回上传成功的文件名* @throws FileSizeLimitExceededException 如果超出最大大小* @throws FileNameLengthLimitExceededException 文件名太长* @throws IOException 比如读写文件出错时* @throws InvalidExtensionException 文件校验异常*/public static final String upload(String baseDir, MultipartFile file, String[] allowedExtension)throws FileSizeLimitExceededException, IOException, FileNameLengthLimitExceededException,InvalidExtensionException{int fileNamelength = OriginalFilename().length();if (fileNamelength > FileUploadUtils.DEFAULT_FILE_NAME_LENGTH){throw new FileNameLengthLimitExceededException(FileUploadUtils.DEFAULT_FILE_NAME_LENGTH);}assertAllowed(file, allowedExtension);String fileName = extractFilename(file);File desc = getAbsoluteFile(baseDir, fileName);ansferTo(desc);String pathFileName = getPathFileName(baseDir, fileName);return pathFileName;}

判断文件长度是否大于默认值,判断文件是否允许上传,
使用extractFilename方法获取新的文件名

/*** 编码文件名*/public static final String extractFilename(MultipartFile file){   //获得文件原始名String fileName = OriginalFilename();//获取文件格式String extension = getExtension(file);//DateUtils.datePath()获取当前日期     并将三部分拼接形成新的文件名fileName = DateUtils.datePath() + "/" + IdUtils.fastUUID() + "." + extension;return fileName;}

三、获取访问路径 ,拼接文件名 ,形成url

 String url = Url() + fileName;

四、返回前端请求

  AjaxResult ajax = AjaxResult.success();ajax.put("fileName", fileName);ajax.put("url", url);return ajax;

本文发布于:2024-02-02 18:09:29,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170686922345529.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文件上传   后端   逻辑
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23