String downUrl = request.getParameter("url");
String exportFileName = StringUtil.iso2utf(request.getParameter("filename"))+".pdf";
if("".equals(downUrl)){
return ;
}
String finalFileName = "";
String agent = request.getHeader("User-Agent");
boolean isMSIE = (agent != null && agent.indexOf("MSIE") != -1);
if (isMSIE) {
finalFileName = java.net.URLEncoder.encode(exportFileName, "UTF8");
} else {
finalFileName = new String(exportFileName.getBytes("UTF-8"),
"ISO-8859-1");
}
// 该步是最关键的一步,使用setHeader()方法弹出"是否要保存"的对话框,打引号的部分都是固定的值,不要改变
response.setHeader("Content-disposition", "attachment;filename="+ finalFileName);
// 获得一个 ServletOutputStream(向客户端发送二进制数据的输出流)对象
OutputStream servletOutPutStream = response.getOutputStream();
URL url = new URL(downUrl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置超时间为3秒
conn.setConnectTimeout(3 * 1000);
// 防止屏蔽程序抓取而返回403错误
conn.setRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
// 获得一个从服务器上的文件myFile中获得输入字节的输入流对象
InputStream fileInputStream = conn.getInputStream();
byte bytes[] = new byte[1024];// 设置缓冲区为1024个字节,即1KB
int len = 0;
// 读取数据。返回值为读入缓冲区的字节总数,如果到达文件末尾,则返回-1
while ((len = fileInputStream.read(bytes)) != -1) {
// 将指定 byte数组中从下标 0 开始的 len个字节写入此文件输出流,(即读了多少就写入多少)
servletOutPutStream.write(bytes, 0, len);
}
servletOutPutStream.close();
fileInputStream.close();
out.clear();
out = pageContext.pushBody();
分享到:
相关推荐
C# asp.net http HttpWebRequest模拟浏览器请求下载文件到本地
开发环境:Visual Studio 2013 运行环境:Windows with .net framework 2.0 软件功能: ...未能使用工作线程技术,列出邮件和批量下载时候会出现短暂软件界面卡顿,具体时间视网络带宽和下载数据量而定。
在.net IIS禁止浏览器访问文档附件(如doc、xls、rar、pdf)时,在web服务器上通过物理地址以文件流方式下载附件,以保护office文档等不被通过地址栏直接非法下载。 用法:downatt.aspx?file=附件路径(如:...
直链附件上传下载系统v2.0 所有内容均在index.php可以直接编辑。 利用amazeui框架搭建,完美HTML5支持。 无需数据库支持,支持PHP即可。 与演示站一样。 (至于看访问打开及上传下载快不快就看你自己的空间和...
vue+Java 实现附件分组下载压缩包(csdn)————程序
最新 DC附件下载次数限制 商业版v1.1.1dz插件,适用于资源下载站,限制一次性大量下载
NTKO附件管理控件(多文件上传下载在线编辑扫描控件)是拥有完全独立知识产权的多附件上传控件.使用NTKO附件管理控件[多文件上传控件],能够在浏览器中启动原始文件对应的应用程序,对图像文件,OFFICE文件,文本文件,...
根据网络文件地址 ,获取文件后缀名称,下载到本地
2022年第三届“网鼎杯”网络安全大赛(白虎组)部分题目附件
二、问题描述:安装了超大附件插件,但还是提示没有安装,安装N次不行,重启机器不行,重装系统不行。 三、问题核心:问题不在于IE,而在于系统。原因是IE加载不了控件,我在加载项里找不到。 我已解决,请下载
附件批量采集系统是一款非常好用的软件采集下载软件,软件只需要你设置相关的软件,即可在线的进行采集,进行选取自动下载,需要的用户快来下载吧。 附件批量采集系统使用方法 1、首先下载并解压 2、之后打开软件 3...
QHttp协议下载网络文件、图片等,并自动保存本地文件夹。
将邮件附件接收存到指定位置
关于附件上传文件名包含特殊字符的问题解决办法
遗传算法优化BP神经网络算法代码dai附件-利用遗传算法优化BP神经网络权值和阈值.rar 大家好: 为了感谢大家对我的帮助,我把自己搜集到的有关遗传算法优化BP神经网络算法的代码发给大家。这里有些是从网络上...
[信息办公]飞信网络办公系统(支持飞信和超大附件上传) v1.3_weboaf.zip源码PHP项目源代码下载[信息办公]飞信网络办公系统(支持飞信和超大附件上传) v1.3_weboaf.zip源码PHP项目源代码下载 1.适合个人搭建网站项目...
【天格】战队-未解出题目附件-第六届“强网杯”全国网络安全挑战赛
不用怕,有了猴岛附件神器就可以帮助您下载所有的附件~ 使用说明: 本软件是猴岛免登陆下载附件神器, 可以直接解析带有附件帖子的附件地址, 只需要复制地址到网址栏中点击确认提交即可得到附件...
数据驱动的城市轨道交通网络优化策略的数据都在这里啦~欢迎大家下载学习
网络安全检查自查表 附件 网络安全检查自查表 网络安全检查自查表全文共19页,当前为第1页。表一:行业主管部门填写 网络安全检查自查表全文共19页,当前为第1页。 一、行业主管部门基本情况 行业主管部门名称 单位...