文件下载

C#通过文件流下载文件 1、该方法传入的参数为需要下载的文件(需要包含绝对路径)/// /// 通过文件流下载文件 /// /// 文件名称(包含目录和后缀名) private void DownLoadPic(string url) { string sFileName = url ; F 阅读详情

使用若依框架的springboot项目,接上一篇文件上传后做了下载功能;

1. 前端方法

下面展示一些 下载按钮传id。

actions.push('<a class="btn btn-success btn-xs" onclick="appendixDownLoad(\'' + row.id + '\')"><i class="fa fa-edit"></i>下载</a> ');

访问接口方法:

		//文件下载
        function appendixDownLoad(id) {
            console.log(id)
            const url = prefix + "/appendixDownLoad/" + id;
            window.open(url);
        }

2. 后端方法

    /**
     * 下载【附件】
     * @param id
     * @param response
     * @throws UnsupportedEncodingException
     */
    @GetMapping("/appendixDownLoad/{id}")
    @ResponseBody
    public void appendixDownLoad(@PathVariable("id") String id, HttpServletResponse response) throws UnsupportedEncodingException {
        System.out.println("资源类下载附件,附件ID是:"+id);
        TargetAppendix targetAppendix = targetAppendixService.selectTargetAppendixById(id);
        //xxx.png
        String appendixName = targetAppendix.getAppendixName();
        //文件绝对路径
        String filePath = targetAppendix.getAppendixUrl();
        FileDownloadUtil.downloadFile(response, appendixName, filePath);
    }

    /*文件下载*/
    public static void downloadFile(HttpServletResponse response, String fileName, String path){
        if (fileName != null) {
            //设置文件路径
            File file = new File(path);
            if (file.exists()) {
                response.setHeader("content-type", "application/octet-stream");
                response.setContentType("application/octet-stream");
                try {
                    response.setHeader("Content-Disposition", "attachment;filename="+new String(fileName.getBytes("utf-8"),"ISO-8859-1"));
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                }
                byte[] buffer = new byte[1024];
                FileInputStream fis = null;
                BufferedInputStream bis = null;
                try {
                    fis = new FileInputStream(file);
                    bis = new BufferedInputStream(fis);
                    OutputStream os = response.getOutputStream();
                    int i = bis.read(buffer);
                    while (i != -1) {
                        os.write(buffer, 0, i);
                        i = bis.read(buffer);
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    if (bis != null) {
                        try {
                            bis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                    if (fis != null) {
                        try {
                            fis.close();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        }
    }
若依ruoyi-vue中的文件上传和下载 前端main.js已经引入了FileUpload组件,所以在其他页面直接使用就行。在自动生成的代码里面没有文件下载,是通过若依自己集成的download插件来实现的。若依现成的功能里面没有文件上传,但是集成了文件上传的组件以及图片上传的组件。若依自带的代码相对简单,利用FileUploadUtils将文件上传到本地。在代码自动生成的时候可以对字段设置为文件上传或图片上传图片类型。文件上传会调用服务器的/common/upload接口上传文件。后端实现相对简单,也是通过FileUtils类来实现的。 阅读详情

相关推荐

若依任意文件下载(CVE-2023-27025)

若依它就是一个开源项目,任何公司的各种大的项目必然需要一个后台权限管理系统,这是必然的,但是如果不想投入太多人力物力去开发,又恰好有现成且比较好用的别人已经完成的项目直接供我们来使用。1、使用、减少工作量2、学习优秀的开源项目底层的编程思想,设计思路,提高自己的编程能力。

qq_32445755的博客 1925

若依框架vue如何实现文件上传预览和下载

下载时直接点击文件面就可以下载了。

m0_63524137的博客 5004

若依前后端分离文件上传下载实现流程

本文主要介绍,若依前后端分离中文件上传下载的实现流程。

猿小白的博客 5932

若依框架下载文件

若依下载的逻辑是指定文件存储的路径,在ruoyi-admin模块下的application.yml中配置路径结尾必须要加'/'或者'\'结尾。他使用的是虚拟路径映射,所以文件名必须是配置路径下真实的文件名。若依采用的是流的方式,前端必须要用bolb的方式去接收,然后保存成本地文件。

无心 5293

提升仿真效率:Synopsys VCS高级编译选项优化技巧(2023最新版)

本文深入探讨了Synopsys VCS 2023版本中的高级编译选项优化技巧,帮助工程师提升仿真效率。通过并行编译、智能代码分析、精准覆盖率采样等策略,结合真实案例展示如何显著缩短仿真周期并优化资源使用,适用于数字芯片验证和大型SoC设计。

weixin_30338481的博客 114

Android——Handler详解

1. 简介 Handler是一套 Android 消息传递机制 可以说只要有异步线程与主线程通信的地方就一定会有 Handler。 在多线程的应用场景中,将工作线程中需更新UI的操作信息 传递到 UI主线程,从而实现 工作线程对UI的更新处理,最终实现异步消息的处理 使用Handler消息传递机制主要是为了多个线程并发更新UI的同时,保证线程安全 2. 相关概念解释 Handler、Message、Message Queue、Looper Android消息机制: 以Handler的sendMes

Yawn 7万+

【RuoYi】实现文件的上传与下载

首先,最近在做一个管理系统,里面刚好需要用到echarts图和富文本编辑器,然后我自己去看了官网觉得有点不好懂,于是去B站看来很多视频,然后看到了up主【程序员青戈】的视频,看了他讲的echarts图和富文本编辑器部分的内容,觉得讲的很好,很推荐大家去观看他的视频。然后在富文本编辑器这部分内容中,需要用到,文件上传与下载的部分知识,所以这里做一个笔记,来记录关于这部得分的内容,echarts图和富文本编辑器部分的内容也会在后面的博客中介绍。希望对大家有所帮助啦~ 导入hutool的依赖 三、文件上传

qq_51933234的博客 9457

CVPR 2027 投稿规划:基于近3年录用率与截稿周期的5步时间管理法

本文为计算机视觉研究者提供CVPR 2027投稿的完整规划指南,基于近三年录用率与截稿周期数据,提出五步时间管理法。涵盖选题策略、实验设计、论文写作、同行评审到最终提交的全流程优化,特别针对CVPR日益激烈的竞争环境(2024年投稿量达11532篇,录取率仅23.6%)提供实用解决方案,帮助研究者提升投稿成功率。

weixin_34079177的博客 1157

Java下载文件的几种方式含本地文件下载

1.以流的方式下载. public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的文件的路径。 File file = new File(path); // 取得文件名...

海那边天哭了 8610

解决windows10下无法安装.net framework 3.5(包括.net2.0和3.0)

入域电脑,win10系统中安装 .net framework 3.5(包括.net2.0和3.0)

God_me_1的博客 4万+

Test-Time Adaptation Induces Stronger Accuracy and Agreement-on-the-Line

TTA不管是否提高了OOD的泛化性都增强了线性的趋势,TTA的初始目的是为了增强OOD的表现,一个人可能会觉得TTA使得ACL更强的原因是他消除了ID和OOD之间的差距,因此所有模型间ID vs OOD的准确率接近于y=x这条线,但是实际上这个解释不能够反映我们的经验发现,因为虽然TTA将分布之间的偏移简化为一种放缩的分布,但是这个放缩的因子幅值可能很大,也就是α<<1但是r>>1,这就会导致很偏离y=x这条线,而且理论分析也是,虽然ID和OOD的差距很大,但是线性关系还在。

m0_62673638的博客 148

python 文件下载、大文件下载、异步批量下载 教程

原文来自Python实用宝典:python 文件下载、大文件下载、异步批量下载 教程 按照不同的情况,Python下载文件可以分为三种: 小文件下载 大文件下载 批量下载 python 小文件下载 流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放的地方。 以下载上述流程图为例子: 运行完毕后,它将会被保存到当前文件夹的new文件夹里。 python ...

Python实用宝典网 1939

贝叶斯(Bayes)决策理论

在博文【模式识别PR和模式的概念】介绍了相关的模式识别与模式的概念。在本节描述所要讨论的问题之前,再提一下对于待识别的物理对象的描述问题。假设一个待识别的物理对象用其d个属性观察值描述,称之为d个特征,这组成一个d维的特征向量,而这d维待征所有可能的取值范围则组成了一个d维的特征空间。一般地,机器实现自动分类有两大类方法:一种是模板匹配方法,另一种是对特征空间划分为子空间(每类的势力范围)的方法。

松子茶的专栏 3万+

【文件下载】java下载文件的几种方式(本地下载、从网络上下载、在线浏览)

原文地址:https://www.cnblogs.com/sunny3096/p/8204291.html 1.以流的方式下载. public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的文件的路径。 ...

TRX的博客 6077

ShardingSphere 分库分表避坑:扩容数据迁移时,如何做到“不停机、不丢数据”?

停机:发布公告,凌晨 0 点停止对外服务。洗数据:跑一个巨大的脚本,把旧库数据 Hash 算出新路由,写入新库。改配置:修改代码里的分片规则。重启:祈祷数据没丢,服务正常。这种“刀耕火种”的方式,风险极高,且随着数据量增大,停机时间会变得不可接受。我们需要的是Online Migration (在线迁移)。分库分表扩容不再是“听天由命”的赌博。通过,我们将一次高风险的“运维操作”变成了一个可控的、可视化的“数据流转过程”。方案停机时间复杂度回滚难度传统停机清洗。

BUG猿的博客 883

使用CubeMX配置STM32H7的FreeRTOS

本文将介绍如何使用CubeMX配置STM32H7的FreeRTOS,并提供相应的源代码示例。通过使用CubeMX,你可以轻松地配置FreeRTOS和系统资源,并生成相应的初始化代码和配置文件。在"FreeRTOS"选项卡的"Tasks"部分,可以配置系统中的任务。首先,打开CubeMX软件。在"FreeRTOS"选项卡的"Resources"部分,你可以配置FreeRTOS使用的资源,例如,堆内存和信号量。例如,我们可以创建两个简单的任务,一个任务将在循环中切换LED的状态,另一个任务将通过串口打印消息。

JeeVue的博客 711

如何将QQ群文件快速下载,怎么快速下载QQ中的文件,QQ群文件下载

这是王秀秀的第18篇博客 直接想看怎么下载,可以直接略过下面这段废话 点击正文开始↓正文开始 生活中我们肯定会遇到传输文件的问题,一般我们传输文件,下载文件一般都用某云盘了,可是它的德行大家也都知道。下载速度快的一批。 所以的我就想用用QQ来传输文件,不得不说啊,????爸爸真的还是听良心的。我将我的一个1.5G大文件发送给了盆友,然后点击离线发送,发现这速度真的没得说真的快,可是当我发第二个的时候,突...

weixin_43866499的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

okhttp下载文件 Java下载文件 javaokhttp下载文件 下载文件 java下载 okhttp下载 okhttp

也可以用 UrlConnetcion或者apache。示例 http客户端 用的是。

半只 3450

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

web下载文件,前端下载二进制文件,vue axios下载文件,前端文件下载,ajax下载文件

通过后端接口下载excel文件,后端没有文件地址,返回二进制流文件 axios({ method: 'post', url: url, // 请求地址 data: options, // 参数 responseType: 'blob' // **表明返回服务器返回的数据类型** }).then( response => { ...

张宇的博客 663

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

文件下载---文件流下载文件

使用文件流方式直接下载文件

大香蕉的博客 4109

【文件下载】Java下载文件的几种方式

1.以流的方式下载 public HttpServletResponse download(String path, HttpServletResponse response) { try { // path是指欲下载的文件的路径。 File file = new File(path); // 取得文件名。 String filename = file.getName(); /

男人要霸气的博客 771

thinkphp 文件下载 文件下载php

THinkPHP1.5中文件的下载 用到的系统类库文件是Http.class.php,位于ThinkPHP\Lib\ORG\Net目录下,类名Http,其中有静态方法 static function download ($filename, $showname=”,$conte

万维网 7935

axios下载大文件_python 文件下载、大文件下载、异步批量下载 教程

原文来自Python实用宝典:python 文件下载、大文件下载、异步批量下载 教程按照不同的情况,Python下载文件可以分为三种:小文件下载大文件下载批量下载python 小文件下载流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放的地方。以下载上述流程图为例子:运行完毕后,它将会被保存到当前文件夹的new文件夹里。python 大文件下载我们在小文件下载...

weixin_39748445的博客 194

文件 - 04 下载文件: 根据文件下载链接下载文件

代码】文件-04根据文件下载链接下载文件。

你今天真好看呀 1281

浏览器通过下载来下载文件

如图:通过以下方式下载 在jsp页面访问地址: //执行模版下载    function downloadTemplate(){         window.location.href = "download/downloadServlet.do";     };  servlet请求: package com.xjw.bmp.servle

mexican_jacky的专栏 1864

axios下载大文件_python 小文件下载、大文件下载、异步批量下载 教程

按照不同的情况,Python下载文件可以分为三种:小文件下载大文件下载批量下载python 小文件下载流程:使用request.get请求链接,返回的内容放置到变量r中,然后将r写入到你想放的地方。以下载上述流程图为例子:运行完毕后,它将会被保存到当前文件夹的new文件夹里。python 大文件下载我们在小文件下载的时候,是将文件内容暂存到变量里,大家想想,下载大文件的时候还这样做会有什么问题? ...

weixin_39717121的博客 253
上一篇: 使用若依框架的springboot项目中的上传功能
下一篇: springboot文件上传测试Controller
bob_bob1
博客等级 码龄7年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值