隐藏form表单下载文件

JQuery 实现文件下载的常用方法分析 本文实例讲述了JQuery 实现文件下载的常用方法。分享给大家供大家参考,具体如下: GET方式 [removed].href = url; POST方式 var url = 下载接口地址; // 构造隐藏的form表单 var $form = $(<form id='download' class='hidden' method='post'></form>); $form.attr(url,url); $(body).append($form); // 添加提交参数 var $input1 = $(<input name='param1' type='tex 立即下载

下载文件操作

java contorller代码

@RequestMapping ("/downloadZIPFile")
    @ResponseBody
    public void downloadZIPFile (HttpServletRequest request, HttpServletResponse response)
    {
        InputStream in = null;
        OutputStream out = null;
        try
        {
            request.setCharacterEncoding ("utf-8");
            String filePath = request.getParameter ("filePath");//获得文件路径
            String fileName = request.getParameter ("fileName");//获得要下载的文件名
            File file = new File (filePath);
            response.setHeader ("Content-type", "text/html;charset=UTF-8");
            response.setCharacterEncoding ("utf-8");//设置编码集,文件名不会发生中文乱码
            response.setHeader ("Content-Disposition", "attachment;filename=" + fileName);
            in = new FileInputStream (file);
            out = response.getOutputStream ();
            byte[] buffer = new byte[1024];
            int len = 0;
            while ((len = in.read (buffer)) > 0)
            {
                out.write (buffer, 0, len);
            }
        }
        catch (Exception e)
        {
            if (e instanceof IOException)
            {
                e.printStackTrace ();
                _logger.error ("文件下载发生异常!", e);
            }
            else if (e instanceof UnsupportedEncodingException)
            {
                e.printStackTrace ();
                _logger.error ("设置编码格式发生异常!", e);
            }
            else
            {
                e.printStackTrace ();
                _logger.error ("文件下载发生异常!", e);
            }
        }
        finally
        {
            try
            {
                in.close ();
                out.flush ();
                out.close ();
            }
            catch (IOException e)
            {
                e.printStackTrace ();
            }
        }
    }

js代码

//我这是点击datagrid的某一行,先生成文件,再下载文件的,所以有了文件名与路径;
function downloadFile(actoinURL,filePath,fileName){
	var form = $("<form>");   
	$('body').append(form);  
        form.attr('style','display:none');   
        form.attr('target','');
        form.attr('method','post');
        form.attr('action',actoinURL);//下载文件的请求路径
        
        
        var input1 = $('<input>'); 
        input1.attr('type','hidden'); 
        input1.attr('name','filePath'); 
        input1.attr('value',filePath);
        form.append(input1);  
        var input2 = $('<input>'); 
        input2.attr('type','hidden'); 
        input2.attr('name','fileName'); 
        input2.attr('value',fileName);
        form.append(input2);
        
        form.submit();    
	
	};

对了,我在网上查过,说是ajax不能做下载文件操作!

ajax不能实现文件下载的原因:

那是因为response原因,一般请求浏览器是会处理服务器输出的response,例如生成png、文件下载等,然而ajax请求只是个“字符型”的请求,即请求的内容是以文本类型存放的。文件的下载是以二进制形式进行的,虽然可以读取到返回的response,但只是读取而已,是无法执行的,说白点就是js无法调用到浏览器的下载处理机制和程序。
SAP ABAP实战:手把手教你用BAPI_BILLINGDOC_CREATEMULTIPLE批量开票(附完整代码与避坑指南) 本文详细解析了SAP ABAP中BAPI_BILLINGDOC_CREATEMULTIPLE批量开票的全流程,包括参数配置、事务控制、错误处理及性能优化。通过实战案例和完整代码示例,帮助开发者高效处理大批量发票生成任务,避免常见陷阱,提升开发效率。 阅读详情

相关推荐

保姆级教程:在Ubuntu 20.04上从源码编译Apollo自动驾驶平台(含GPU环境配置)

本文提供了一份详细的Ubuntu 20.04上从源码编译Apollo自动驾驶平台的保姆级教程,包括GPU环境配置、Docker部署和编译构建等关键步骤。通过实战经验和避坑指南,帮助开发者高效完成Apollo平台的编译和验证,适用于自动驾驶技术研究和应用开发。

weixin_30876945的博客 409

Java+Js实现文件下载

Maven依赖 <dependency> <groupId>com.deepoove</groupId> <artifactId>poi-tl</artifactId> <version>1.9.0</version> ...

bernardGao94的博客 388

大疆航线文件解析指南:5分钟搞懂KMZ里的template.kml和waylines.wpml区别

本文深入解析大疆无人机航线文件KMZ中template.kml与waylines.wpml的核心区别。template.kml是定义任务框架和全局参数的可编辑模板,而waylines.wpml是包含精确执行指令的最终文件。理解两者差异对于高效规划航线、批量生成任务及进行二次开发至关重要。

sun99的博客 866

form表单提交下载文件获取文件的是否下载完成

新人要做一个下载功能,为了良好的用户体验,要求点击下载之后弹出一个正在下载的提示框。 既然要有提示框,那下载完成之后肯定是要关闭提示框的,所以一开始我是用ajax来实现的,后面发现ajax根本不能获取到response的内容,所以无法完成下载。 之后我用from表单来提交,这个方法可是可以下载文件,但问题是不能获取到文件的下载状态,不能判断它是否完成下载然后好关闭提示框。 然后我又找了种方法,就是...

weixin_43165220的博客 4429

NVMe与PCIe的完美结合:高速存储背后的技术解析

本文深入解析了NVMe与PCIe技术如何完美结合,实现高速存储性能的飞跃。从机械硬盘到NVMe SSD的进化历程出发,详细介绍了PCIe总线的高带宽优势与NVMe协议的低延迟设计,以及两者协同工作带来的显著性能提升。通过实测数据对比,展示了NVMe SSD在消费级和企业级应用中的卓越表现,并提供了选购与优化建议。

weixin_29216353的博客 376

【JESD79-5之】8 AC & DC 输入测量标准(AC & DC Input Measurement Levels)

时钟被驱动到DRAM,可以通过L/RDIMM模块的RCD来实现,也可以通过U/SODIMM模块的主机来实现(图184)。接收机DQS(脉冲)输入电压灵敏度测试提供了在没有码间干扰(ISI),抖动(Rj, Dj, DCD)和串扰噪声的情况下测试接收机对不同输入电压的灵敏度的方法。接收机数据输入电压灵敏度测试提供了在没有符号间干扰(ISI),抖动(Rj, Dj, DCD)和串扰噪声的情况下测试接收机对不同输入电压的灵敏度的方法。

m0_61126667的博客 1707

使用隐藏form表单下载文件,解决url方式下载,由于环境问题而限制url长度,满足不了所有的需求!...

一 对于某些环境导出是直接用wiondow.href=url直接导出下载,有些业务需求,如员工档案等字段比较多的时候,全选导出就会引发异常,由于Nginx转发长度限制的问题, 如果运维不愿意改变环境,只能硬着头皮修改程序了,即由原来的get方式改为POST,ajax方式是不能下载文件的,因为会把文件流直接返回到回调函数中,所以这里采取隐藏form表单下载 后台接口修改为POST接受方式: ...

weixin_34384915的博客 450

Coursera | 离散数学概论(北大)| quiz答案

Coursera离散数学概论quiz答案Week1:数理逻辑:基本概念Week2:数理逻辑:命题逻辑及形式系统Week3:数理逻辑:谓词逻辑及形式系统Week4:集合论:集合代数   先放下Coursera上找的离散数学部分相关课程:   btw.线上学习拿证书还有很多,MOOC、edm等都可。   博主选了北京大学离散数学概论Discrete Mathematics Generality。Mooc上貌似也有,但是上课时间貌似不如Coursera灵活,Coursera时间自己调度,规定时间上完即可。目前课

小鱼干的博客 4128

Form表单提交下载文件并监控下载状态

下载 recordsClick(){//导出表格     var params = {// 参数         id:xx,         name:xx     };     var form = document.createElement('form')     form.id = 'form'     form.name = 'form'     document.body.ap...

chern1992的博客 6785

自动驾驶技术路线之争:纯视觉与多模态融合的成本与性能博弈

本文深入剖析了自动驾驶领域两大主流技术路线——纯视觉与多模态融合的本质差异。文章从成本结构、性能博弈与商业逻辑等多维度展开,揭示了纯视觉方案在硬件成本与数据算力投入上的权衡,以及多模态融合方案在安全冗余与感知稳定性方面的优势。这场技术路线之争,实则是车企在性能、成本与商业化落地之间寻求平衡的综合博弈。

weixin_29038303的博客 391

39、低功耗处理器性能评估与Cortex - M23/M33低功耗特性解析

本文深入解析了Cortex-M23和Cortex-M33处理器的低功耗特性及其性能评估方法。介绍了ULPMark、CoreMark、IoTMark-BLE和SecureMark-TLS等基准测试在能效评估中的应用,并详细阐述了处理器的睡眠模式、系统控制寄存器(SCR)配置、WFI/WFE指令、退出时睡眠、挂起时发送事件(SEVONPEND)以及唤醒中断控制器(WIC)等关键低功耗机制。结合状态保留技术,展示了如何通过芯片级设计大幅降低泄漏电流,实现高效能低功耗的物联网与嵌入式系统设计。

Pepper的专栏 130

浏览器下载显示下载路径

response.addHeader("Content-Disposition", "attachment;filename="+ new String(filename.getBytes()));              OutputStream os= new BufferedOutputStream(response.getOutputStream());              r

u010298371的专栏 911

知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通

大家好,我是微学AI,今天给大家介绍一下知识图谱实战应用8-从文本关系抽取到知识图谱关系构建流程贯通。我们从文本数据中采集到关键信息,并抽取出其中的关系信息,然后在存入图数据库中,整个过程实现自动化,我这里将举一个文本例子进行抽取。 对于知识图谱的构建是将实体、概念和它们之间的关系都以图表形式呈现出来的一种数据结构。要构建一个知识图谱,需要从不同的数据源中采集到相关信息,并将这些信息整合在一起,最终形成一个全面而且精确的知识图谱。

微学AI的博客 2545

使用隐藏form表单下载文件,解决url方式下载,由于环境问题而限制url长度,满足不了所有的需求!

使用隐藏form表单下载文件,解决url方式下载,由于环境问题而限制url长度,满足不了所有的需求!

runwuwushengxiyu的博客 144

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

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...

js实现from表单的文件下载

var form = $("<form>"); //定义一个form表单 form.attr("style", "display:none"); form.attr("method", "post"); form.attr("action", backUrl + "ordercount_exportOrderList.action");...

加菲猫的鳄鱼的博客 1957

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

虚拟form 下载文件

  由于ajax函数的返回类型只有xml,json,html,text等类型的,没有“流”类型,所以通过ajsx去请求接口是无法下载文件的,因此我们创建一个新的form元素来请求接口。    1 function downLoadFun{ 2 var url = " 下载文件的路径 " ; 3 var form = $('<form method="get...

weixin_33775572的博客 86

java 下载txt文件(页面代码+Java后台代码+下载工具类)

需求:页面有一个下载按钮,当点击下载的时候将页面表单数据下载到成为txt文件,并在网页直接下载该文件 1.页面(html) 下载一定要通过form表单的方式,js的ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载。但form可以返回“流”类型的数据。 <form class="form-horizontal" role="form" id="downloadForm" action="/exc

yzx3105的博客 4128

JavaScript文件下载 不跳标签页。支持get、post

利用表单提交方式, downloadFile(url, method, params) { if (!document.getElementById("myIframe")) { let iframe = document.createElement('iframe'); iframe.id = "myIframe"; iframe.name = "myIframe"; iframe.style = "display:none"; document.body..

csdn_meng的博客 1万+

js文件下载

export function format_input_paramt(params) { let option = [] Object.keys(params).forEach(function (name) { option.push({ type: 'hidden', name, value: params[name] }) }); return option; }

qq_38371250的博客 140

ajax到php文件下载,JQuery+AJAX实现文件下载

这次给大家带来JQuery+AJAX实现文件下载,JQuery+AJAX实现文件下载的注意事项有哪些,下面就是实战案例,一起来看一下。JQuery的ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载。但可以用js生成一个form,用这个form提交参数,并返回“流”类型的数据。在实现过程中,页面...

weixin_30509193的博客 384

使用ExtJs实现文件下载

文件下载,是不可以直接通过Ext.Ajax.Request来实现的。一般的,可以通过创建一个隐藏的form表单来实现。具体代码以及代码注释如下:(!Ext.fly('downForm')){ downForm=document.createElement('form'); downForm.id='downForm';   downFo...

weixin_33737134的博客 1219

Post请求下载文件

1、Form方式 参考:http://www.cnblogs.com/ys-wuhan/p/6599063.html var url = "请求URL"; var params = 请求参数; $.ajax({ type: "POST", url: url, data: params, succe

sleetdream的博客 2097

使用form表单来下载文件

使用form表单来下载文件,浏览器看到其请求是document类型的 var form = document.createElement("form"); document.getElementsByTagName('body')[0].appendChild(form); form.setAttribute('style','display:...

chelflan's blog 1万+

AJAX实现文件下载

 AJAX实现文件下载 JQuery的ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载, 不能够使用相应的ajax函数进行文件下载。但可以用js生成一个form,用这个form提交参数,并返回“流”类 型的数据。在实现过程中,页面也没有进行刷新。 方法一: var form=$("");//定义一个form表

wwning的博客 730

js发送post请求下载文件

//JQuery的ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载。//但可以用js生成一个form,用这个form提交参数,并返回“流”类型的数据。在实现过程中,页面也没有进行刷新。var DownLoadFile = function (options) { var conf...

weixin_34144450的博客 1642

HTML js 实现文件下载,rar格式可以直接下载,其他格式会预览

&lt;!DOCTYPE html&gt;&lt;html&gt;&lt;head&gt;&lt;meta charset="UTF-8"&gt;&lt;title&gt;Insert title here&lt;/title&gt;&lt;/head&gt;&lt;script src="http://ajax.aspnetcdn.com/ajax/jQue

zq爱生活爱代码的博客 4353
上一篇: easyUI下拉框表格扩展(实现搜索功能)[easyUI+java]
下一篇: Oracle日期类型转换格式
java_trainee
博客等级 码龄10年 12粉丝 22原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值