SpringBoot+ruoyi框架文件上传和下载的实现
第一次接触ruoyi框架,碰到文件上传和下载问题,今天来总结一下。使用若依框架文件上传下载首先配置文件路径要配好。
文件下载:
application.yml若依配置
# 项目相关配置 ruoyi: # 名称 name: RuoYi # 版本 version: 3.6.0 # 版权年份 copyrightYear: 2021 # 实例演示开关 demoEnabled: true # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath) # profile: /home/admin2409/fn/uploadPath profile: D:/.code/uploadPath # 获取ip地址开关 addressEnabled: false # 验证码类型 math 数组计算 char 字符验证 captchaType: math

首先是文件下载,在若依框架下载上传文件工具已经写好了页面:

前端方法:`
// 通用下载方法
export function download(fileName) {
window.location.href = baseURL + "/common/download?fileName=" + encodeURI(fileName) + "&delete=" + true;
}后端通用方法:
单独写一个下载啊文件的请求
@GetMapping("/downloadTemplate")
public AjaxResult importTemplate() throws IOException {
return AjaxResult.success("hnxTemplate.xlsx");
}/**
* 通用下载请求
*
* @param fileName 文件名称
* @param delete 是否删除
*/
@GetMapping("common/download")
public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) {
try {
if (!FileUtils.checkAllowDownload(fileName)) {
throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 " , fileName));
}
String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
String filePath = RuoYiConfig.getDownloadPath() + fileName; //注意这里的路径要和你下载的路径对应
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
FileUtils.setAttachmentResponseHeader(response, realFileName);
FileUtils.writeBytes(filePath, response.getOutputStream());
if (delete) {
FileUtils.deleteFile(filePath);
}
} catch (Exception e) {
log.error("下载文件失败" , e);
}
}RuoYiConfig.getDownloadPath()如果和你的路径不一样,改成一样的
/**
* 获取下载路径
*/
public static String getDownloadPath() {
return getProfile() + "/download/";
}

这样就文件就可以下载了

文件上传:
application.yml同样的路径配置不变页面:

前端代码:
<el-form-item label="场景图片:" prop="sceneImgurl">
<el-upload
action=""
ref="uploadImport"
:http-request="httpRequest"
list-type="picture-card"
:limit="1"
:file-list="fileList"
accept=".jpg, .jpeg, .png, .gif"
:auto-upload="false"
:before-remove="removeImg"
>
<i class="el-icon-plus"></i>
</el-upload>
</el-form-item> httpRequest(param) {
let params = new FormData();
params.append('avatarfile', param.file); // 传文件
uploadPlanImg(params).then(res => {
if(res.code!==200) return
this.form.sceneImgurl = res.imgUrl
});
},后端上传代码
httpRequest(param) {
let params = new FormData();
params.append('avatarfile', param.file); // 传文件
uploadPlanImg(params).then(res => {
if(res.code!==200) return
this.form.sceneImgurl = res.imgUrl
});
},String url= RuoYiConfig.getUploadPath();//配置自己的路径
/**
* 获取上传路径
*/
public static String getUploadPath() {
return getProfile() + "/upload";
}上传成功:

到此这篇关于SpringBoot+ruoyi框架图片上传和文件下载的实现的文章就介绍到这了,更多相关SpringBoot ruoy图片上传和下载内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot+Flying Saucer+Thymeleaf实现PDF生成的完整指南
在实际开发中,PDF生成是常见需求,本文将详细讲解如何基于 Spring Boot + Flying Saucer + Thymeleaf 实现 PDF 生成,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下2026-01-01
SpringBoot中SpringSecurity安全框架的基本配置与使用方式
Spring Security是Spring框架的安全性解决方案,提供了身份验证、授权、认证流程安全控制等全面安全功能,广泛应用于Java应用程序中2026-03-03
SpringBoot项目中JDK动态代理和CGLIB动态代理的使用详解
JDK动态代理和CGLIB动态代理都是SpringBoot中实现AOP的重要技术,JDK动态代理通过反射生成代理类,适用于目标类实现了接口的场景,性能较好,易用性高,但必须实现接口且不能代理final方法,CGLIB动态代理通过生成子类实现代理2025-03-03
在lambda的foreach遍历中break退出操作(lambda foreach break)
这篇文章主要介绍了在lambda的foreach遍历中break退出操作(lambda foreach break),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-09-09


最新评论