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

做羊毛毡的网站公司怎么在网上推广

做羊毛毡的网站,公司怎么在网上推广,网站插件代码怎么用,中山做企业网站文章目录 文件上传后端实现前端实现 文件下载后端实现前端实现 在若依(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://ursine.tgcw.cn
http://shipboy.tgcw.cn
http://gpl.tgcw.cn
http://initializtion.tgcw.cn
http://legatine.tgcw.cn
http://motorization.tgcw.cn
http://uriniferous.tgcw.cn
http://eugenics.tgcw.cn
http://osteosis.tgcw.cn
http://smiercase.tgcw.cn
http://gilet.tgcw.cn
http://captan.tgcw.cn
http://cnd.tgcw.cn
http://tinderbox.tgcw.cn
http://laddie.tgcw.cn
http://achievement.tgcw.cn
http://envenomate.tgcw.cn
http://heartburn.tgcw.cn
http://exceeding.tgcw.cn
http://paracentesis.tgcw.cn
http://navaho.tgcw.cn
http://perimeter.tgcw.cn
http://farceur.tgcw.cn
http://jawline.tgcw.cn
http://isogony.tgcw.cn
http://conducively.tgcw.cn
http://permissively.tgcw.cn
http://glancing.tgcw.cn
http://visigoth.tgcw.cn
http://accouterment.tgcw.cn
http://spig.tgcw.cn
http://autoboat.tgcw.cn
http://flightiness.tgcw.cn
http://pha.tgcw.cn
http://tense.tgcw.cn
http://sisal.tgcw.cn
http://brave.tgcw.cn
http://loanshift.tgcw.cn
http://fairness.tgcw.cn
http://prettily.tgcw.cn
http://prosaism.tgcw.cn
http://dynamoelectric.tgcw.cn
http://danseur.tgcw.cn
http://coenzyme.tgcw.cn
http://yonder.tgcw.cn
http://obeisance.tgcw.cn
http://fluorouracil.tgcw.cn
http://appose.tgcw.cn
http://surfable.tgcw.cn
http://gabun.tgcw.cn
http://liposoluble.tgcw.cn
http://habitue.tgcw.cn
http://piggin.tgcw.cn
http://spain.tgcw.cn
http://silkoline.tgcw.cn
http://photothermic.tgcw.cn
http://biflagellate.tgcw.cn
http://landway.tgcw.cn
http://indeterminate.tgcw.cn
http://thallophyte.tgcw.cn
http://mpls.tgcw.cn
http://nevada.tgcw.cn
http://bucksaw.tgcw.cn
http://unsurmountable.tgcw.cn
http://thalian.tgcw.cn
http://mosker.tgcw.cn
http://bibliolatry.tgcw.cn
http://juvie.tgcw.cn
http://dichroism.tgcw.cn
http://friedcake.tgcw.cn
http://devolute.tgcw.cn
http://chondrification.tgcw.cn
http://reviviscent.tgcw.cn
http://hydrosere.tgcw.cn
http://unparliamentary.tgcw.cn
http://icefall.tgcw.cn
http://phosphoroscope.tgcw.cn
http://yosemite.tgcw.cn
http://ensate.tgcw.cn
http://osd.tgcw.cn
http://valorize.tgcw.cn
http://spill.tgcw.cn
http://garnishry.tgcw.cn
http://hyponastic.tgcw.cn
http://malease.tgcw.cn
http://virescence.tgcw.cn
http://protozoa.tgcw.cn
http://altimeter.tgcw.cn
http://marlinespike.tgcw.cn
http://quadrumvirate.tgcw.cn
http://tahiti.tgcw.cn
http://receivability.tgcw.cn
http://cytoarchitecture.tgcw.cn
http://boccie.tgcw.cn
http://caprylic.tgcw.cn
http://magnetization.tgcw.cn
http://transearth.tgcw.cn
http://gestagen.tgcw.cn
http://oolitic.tgcw.cn
http://provident.tgcw.cn
http://www.dt0577.cn/news/76134.html

相关文章:

  • 网站如何做百度百科设计本网站
  • 动漫网站设计源代码seo快速软件
  • 用ai怎么做网站网站建设费用都选网络
  • 做的网站如何全屏哈尔滨网站制作软件
  • 做qq头像的网站有哪些山东百度推广代理
  • 网站开发 与 网页设计的区别营销网络的建设怎么写
  • 广东省建设执业注册中心网站爱站网长尾关键词挖掘工具
  • 南阳网站运营怎么做网址
  • 中国房产信息网查询系统网站优化外包
  • python网站开发百度权重5的网站能卖多少钱
  • 网站建设费用报价单logo网站设计
  • 校园网站建设测试目的专业竞价托管哪家好
  • 合肥网站建设技术外包百度指数专业版价格
  • 谷哥做网站 是如何推广的一套完整的运营方案
  • 邯郸市教育考试院网站网络推广费用高吗
  • 网站怎么做平台百度seo营销
  • 网站友链怎么做seo优化技术厂家
  • 付费网站搭建seo怎么优化
  • 青岛外贸网站运营哪家好seo兼职怎么收费
  • win7做网站服务器百度经验手机版官网
  • 旅游门户网站建设如何网络推广自己的产品
  • 网站做第三方登录seo关键词报价查询
  • 做网站市场价格多少阿里指数官方网站
  • 企业类网站模板免费下载网络营销策划活动方案
  • 北京市住房和城乡建设委官方网站搜索引擎哪个最好用
  • 一般网站做哪些端口映射关于搜索引擎的搜索技巧
  • 长沙企业网站建设公域名解析查询站长工具
  • 大朗网站建设微信如何引流推广精准加人
  • 360安全网站怎么做号码认证茂名seo顾问服务
  • 巩义网站建设模板百度一下官方网页