如何利用Ajax下载文件
来源:互联网 发布:js鼠标悬停事件 编辑:程序博客网 时间:2024/06/09 18:48
$.ajax({ type: 'POST', url: "downloadReports.do", data: [ { name: "fileIds", value: "135" } ]
})
response.setContentType(
"application/octet-stream"
);
response.setContentType(
"application/OCTET-STREAM;charset=UTF-8"
);
response.setHeader(
"Content-Disposition"
,
"attachment;filename="
+ fileName1);
然后将数据流写入Response:
- //获得请求文件名
- String filename = request.getParameter("filename");
- System.out.println(filename);
- //设置文件MIME类型
- response.setContentType(getServletContext().getMimeType(filename));
- //设置Content-Disposition
- response.setHeader("Content-Disposition", "attachment;filename="+filename);
- //读取目标文件,通过response将目标文件写到客户端
- //获取目标文件的绝对路径
- String fullFileName = getServletContext().getRealPath("/download/" + filename);
- //System.out.println(fullFileName);
- //读取文件
- InputStream in = new FileInputStream(fullFileName);
- OutputStream out = response.getOutputStream();
- //写文件
- int b;
- while((b=in.read())!= -1)
- {
- out.write(b);
- }
- in.close();
- out.close();
JQuery的ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载。但可以用js生成一个form,用这个form提交参数,并返回“流”类型的数据。在实现过程中,页面也没有进行刷新。
<script type="text/JavaScript">
function DownLoad(strUrl) {
var form = $("<form>"); //定义一个form表单
form.attr('style', 'display:none'); //在form表单中添加查询参数
form.attr('target', '');
form.attr('method', 'post');
form.attr('action', "/QuestionInfo/DowmLoad");
var input1 = $('<input>');
input1.attr('type', 'hidden');
input1.attr('name', 'strUrl');
input1.attr('value', strUrl);
$('body').append(form); //将表单放置在web中
form.append(input1); //将查询参数控件提交到表单上
form.submit();
}
</script>
————以上代码直接实现为某个按钮的Click事件即可;
- 如何利用Ajax下载文件
- 如何利用GCD Group批量下载文件
- 如何利用GCD Group批量下载文件
- 如何利用GCD Group批量下载文件
- 利用jquery的ajax提交获得文件下载
- JQuery 中 AJAX 如何实现 Excel 文件 下载
- ajax文件下载
- AJAX文件下载
- Ajax文件下载
- Ajax 文件下载
- ajax 实现 文件下载
- Ajax 文件下载
- ajax 实现文件下载
- AJAX实现文件下载
- Ajax实现文件下载
- ajax实现文件下载
- ajax 下载文件
- AJAX实现文件下载
- Object-Oriented Programming Concepts——面向对象编程的一些概念
- mysql error 1146错误解决办法
- 论文_阅读笔记_基于机器视觉的水稻秧苗图像分割
- howland 电流源
- MySql数据库常用DDL语句 | 黄乔国PHP
- 如何利用Ajax下载文件
- 剑指offer:第一个只出现一次的字符
- Zephyr源码树
- win10下 eclipse配置opencv3.0
- 【机器学习】线性回归与梯度下降
- 欢迎使用CSDN-markdown编辑器
- 【最大流Dinic】BZOJ1066(SCOI2007)[蜥蜴]题解
- java笔记(七):网络编程
- 过渡元素transition的那些事儿