当前位置: 首页 > news >正文

做羊毛毡的网站2023年8月份新冠症状

做羊毛毡的网站,2023年8月份新冠症状,wordpress 主题 排行榜,优化网站搜索排名文章目录 文件上传后端实现前端实现 文件下载后端实现前端实现 在若依(Ruoyi)框架中,结合 Vue 前端框架,文件的上传和下载通常使用以下方法实现: 文件上传 若依现成的功能里面没有文件上传,但是集成了文件…

文章目录

  • 文件上传
    • 后端实现
    • 前端实现
  • 文件下载
    • 后端实现
    • 前端实现

在若依(Ruoyi)框架中,结合 Vue 前端框架,文件的上传和下载通常使用以下方法实现:
在这里插入图片描述

文件上传

若依现成的功能里面没有文件上传,但是集成了文件上传的组件以及图片上传的组件。
在代码自动生成的时候可以对字段设置为文件上传或图片上传图片类型。
在这里插入图片描述

后端实现

/common/upload接口
若依自带的代码相对简单,利用FileUploadUtils将文件上传到本地。

/*** 通用上传请求(单个)*/@PostMapping("/upload")public AjaxResult uploadFile(MultipartFile file) throws Exception{try{// 上传文件路径String filePath = RuoYiConfig.getUploadPath();// 上传并返回新文件名称String fileName = FileUploadUtils.upload(filePath, file);String url = serverConfig.getUrl() + fileName;AjaxResult ajax = AjaxResult.success();ajax.put("url", url);ajax.put("fileName", fileName);ajax.put("newFileName", FileUtils.getName(fileName));ajax.put("originalFilename", file.getOriginalFilename());return ajax;}catch (Exception e){return AjaxResult.error(e.getMessage());}}/*** 通用上传请求(多个)*/@PostMapping("/uploads")public AjaxResult uploadFiles(List<MultipartFile> files) throws Exception{try{// 上传文件路径String filePath = RuoYiConfig.getUploadPath();List<String> urls = new ArrayList<String>();List<String> fileNames = new ArrayList<String>();List<String> newFileNames = new ArrayList<String>();List<String> originalFilenames = new ArrayList<String>();for (MultipartFile file : files){// 上传并返回新文件名称String fileName = FileUploadUtils.upload(filePath, file);String url = serverConfig.getUrl() + fileName;urls.add(url);fileNames.add(fileName);newFileNames.add(FileUtils.getName(fileName));originalFilenames.add(file.getOriginalFilename());}AjaxResult ajax = AjaxResult.success();ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));ajax.put("newFileNames", StringUtils.join(newFileNames, FILE_DELIMETER));ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));return ajax;}catch (Exception e){return AjaxResult.error(e.getMessage());}}

前端实现

前端main.js已经引入了FileUpload组件,所以在其他页面直接使用就行。
main.js的引入

// 文件上传组件
import FileUpload from "@/components/FileUpload"
Vue.component('FileUpload', FileUpload)

页面中如何使用:

<el-form-item label="文件地址" prop="file"><file-upload v-model="form.file"/>
</el-form-item>

文件上传会调用服务器的/common/upload接口上传文件。

文件下载

后端实现

后端实现相对简单,也是通过FileUtils类来实现的。

/*** 本地资源通用下载*/
@GetMapping("/download/resource")public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)throws Exception{try{if (!FileUtils.checkAllowDownload(resource)){throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));}// 本地资源路径String localPath = RuoYiConfig.getProfile();// 数据库资源地址String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX);// 下载名称String downloadName = StringUtils.substringAfterLast(downloadPath, "/");response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);FileUtils.setAttachmentResponseHeader(response, downloadName);FileUtils.writeBytes(downloadPath, response.getOutputStream());}catch (Exception e){log.error("下载文件失败", e);}}
/*** 通用下载请求* * @param fileName 文件名称* @param delete 是否删除*/@GetMapping("/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);}}

前端实现

在自动生成的代码里面没有文件下载,是通过若依自己集成的download插件来实现的
download插件位置:src\plugins\download.js

<el-table-column label="文件地址" align="center" prop="file" ><template slot-scope="scope"><el-buttonsize="mini"type="text"icon="el-icon-edit"@click="$download.resource(scope.row.file,false)">下载</el-button></template></el-table-column>
http://www.15wanjia.com/news/31996.html

相关文章:

  • 长沙定制网页设计文章优化关键词排名
  • 做网站的公司都很小吗企业宣传方式有哪些
  • 自己做个网站的流程外贸网站制作
  • 深圳电器公司排名seo运营人士揭秘
  • 二手书哪个网站做的好数字营销策划
  • 如何渗透wordpress的网站阿里指数在线查询
  • 雄县网站制作建设中心东莞百度seo排名
  • 东莞网站制作网站推广价钱百度网站下载安装
  • 申请企业邮箱需要准备什么材料泰安优化关键词排名哪家合适
  • 政府网站集约化建设有什么作用西安做网站公司
  • 苏州网站关键词推广2024新闻热点摘抄
  • 一键优化为什么不能100aso优化分析
  • 慈溪seo珠海百度搜索排名优化
  • 大气红色礼品公司网站源码竞价推广出价多少合适
  • 网站建设思想重视不够日照网络推广公司
  • 网站建设微信版今日腾讯新闻最新消息
  • 昆明网站建设搜q.479185700windows优化大师有必要安装吗
  • 哪家网站建设培训心得总结
  • 类似优酷的网站开发电脑优化系统的软件哪个好
  • 找公司做网站多少钱深圳seo公司助力网络营销飞跃
  • asp网站qq登录建站 seo课程
  • 泰安赶集网什么叫优化关键词
  • 如何将自己做的网站变成中文免费私人网站建设
  • wordpress插件问题关键词优化推广排名多少钱
  • 国外网站可以访问吗百度推广哪家做的最好
  • 设计软件免费版seo发外链的网站
  • 急招钟点工4小时220元引擎seo优
  • 全球新冠疫苗接种率成都网站seo报价
  • 如何设置网站名字吗千锋教育和达内哪个好
  • 成都高级网站建设合肥网站设计