页面设置隐藏的iframe

页面下载按钮

id="btnDown" href="javascript:void(download('btnDown'))" >下载模板

页面JS脚本

function download(id){

$("#reqFrame").attr("src",encodeURI("/servlet/Common?action=downloadByPath&filePath="+$("#"+id).attr("title")));

}

后台servlet方法

public class SV_Common extends HttpServlet {

/**

*

*/

private static final long serialVersionUID = 1L;

public static final Logger logger = Logger.getLogger(SV_Common.class

.getName());

protected void service(HttpServletRequest request,

HttpServletResponse response) throws ServletException, IOException {

String action = request.getParameter("action");

try {

if ("downloadByPath".equals(action)) { //下载指定路径的文件

downloadByPath(request, response);

} else {

throw new IllegalArgumentException("没有相匹配的操作类型,请检查opp变量.");

}

} catch (Exception ex) {

ex.printStackTrace();

}

}

private void downloadByPath(HttpServletRequest request,

HttpServletResponse response) throws IOException, ServletException {

String filePath = request.getParameter("filePath");

logger.info("filePath="+filePath);

String fileFullName = filePath.substring(filePath.lastIndexOf("/") + 1);

response.reset();

if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0) {

logger.info("User-Agent=firefox");

response.setHeader(

"Content-Disposition",

"attachment;filename=" + new String(fileFullName.getBytes("UTF-8"), "ISO8859-1")

);

} else {

logger.info("User-Agent=not firefox");

response.setHeader(

"Content-Disposition",

"attachment;filename=" + URLEncoder.encode(fileFullName, "UTF-8")

);

}

File file = new File(PathUtil.getPath("") + "/" + filePath);

response.setContentType(new MimetypesFileTypeMap().getContentType(file));

OutputStream out = response.getOutputStream();

BufferedInputStream in = null;

byte[] buffer = new byte[8192];

int length;

try

{

in = new BufferedInputStream(

new FileInputStream(file),8192

);

while ( (length = in.read(buffer)) != -1)

{

out.write(buffer, 0 ,length);

}

}

catch (IOException ex)

{

ex.printStackTrace();

}

finally

{

if (out != null)

{

try {out.close();}

catch (IOException ex) {}

out = null;

}

if (in != null)

{

try {in.close();}

catch (IOException ex) {}

in = null;

}

}

response.flushBuffer();

};

}

paip.java swt 乱码问题解决

paip.java swt 乱码问题解决 看累挂,Dfile.encoding是gbk的.. 作者Attilax  艾龙,  EMAIL:1466519819@qq.com  来源:attilax的专 ...

ASP+Access UTF-8 网页乱码问题解决办法

用ACCESS数据库和ASP做网站时用UTF-8编码有时会出现乱码,再者网页出错或者刷新页面后就是乱码,如果数据库取值乱码在开头加上

openerp 7.0邮件接收中文附件乱码问题解决办法

openerp 7.0邮件接收中文附件乱码问题解决办法: 修改文件\addons\mail\mail_thread.py #1064 line插入代码: h=email.Header.Header(n ...

关于jFinal开发中遇到的中文乱码问题解决办法

关于jFinal开发中遇到的中文乱码问题解决办法 设置tomcat的编码,修改

node-canvas

1.使用之前需要预先安装  Cairo 本人安装遇到各种各样的坑,可以参考这里来填坑:https://github.com/Automattic/node-canvas/wiki/Installati ...

【转】 SED多行模式空间

1. sed执行模板=sed '模式{命令1;命令2}' 即逐行读入模式空间,执行命令,最后输出打印出来 2. 为方便下面,先说下p和P,p打印当前模式空间内容,追加到默认输出之后,P打印当前模式空间 ...

LSM

1.MySQL存储引擎: B+树 https://blog.csdn.net/qq_26222859/article/details/80631121 2.HBase LSM树 核心:将对数据的修改增 ...

[原]关于helios自定义面板简述

想研究一下helios和自己仿真软件的适配,于是找了一下关于helios的使用 首先关于helios的使用有一个“vr2009”的发帖者有过很详细描述: http://www.insky.cn/bbs ...

HTML Tags

While some tags have a very specific purpose, such as image and video tags, most tags are used to de ...

重整ADO.NET连接池相关资料

https://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlconnection.connectionstring(VS.80) ...

ural Ambitious Experiment 树状数组

During several decades, scientists from planet Nibiru are working to create an engine that would all ...

java文件下载至linux乱码,JAVA 文件下载乱码问题解决办法相关推荐

  1. Linux java集成安装环境,Linux下Java环境安装

    本节主要讲解Linux(Centos 6.5)下Java环境的安装 1. 卸载机器上默认安装的JDK 在Linux环境下一般会默认安装jdk,为了自己项目的开发部署,一般情况要重新装jdk,而且自己装 ...

  2. 在linux怎样运行java,怎么在linux运行java

    怎么在linux运行java [2021-02-01 00:44:14]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(" ...

  3. java jcsh执行linux命令,java jcsh执行linux命令

    java jcsh执行linux命令 [2021-02-03 01:26:29]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace(&q ...

  4. linux看java堆大小,linux 改java堆内存大小

    linux 改java堆内存大小 [2021-02-08 23:06:29]  简介: linux查内存大小的方法:首先打开应用程序:然后选择系统工具选项,并单击系统终端选项:接着在系统终端命令行输入 ...

  5. linux如何看java安装路径,linux查看java的安装路径

    linux查看java的安装路径 [2021-02-05 21:28:47]  简介: 服务器 一.查看软件安装路径: Linux软件安装的地方不止一个地方,先说查看软件安装的所有路径(地址). 这里 ...

  6. 怎么看linux Java版本,查看linux的java版本信息

    查看linux的java版本信息 [2021-02-10 01:02:40]  简介: linux系统查看jdk版本的方法是:可以通过[java -version]命令来查看.具体方法是:1.打开终端 ...

  7. 如何查看Linux的java版本,查看linux的java版本信息

    查看linux的java版本信息 [2021-02-10 01:02:40]  简介: linux系统查看jdk版本的方法是:可以通过[java -version]命令来查看.具体方法是:1.打开终端 ...

  8. java线程和linux线程,Java线程与Linux内核线程的映射关系

    Linux从内核2.6开始使用NPTL (Native POSIX Thread Library)支持,但这时线程本质上仍是轻量级进程(LWP). Java里的线程是由JVM来管理的,它如何对应到操做 ...

  9. 普通java跑到linux上,JAVA在linux下open too many files

    Too many open files问题出现有两种情况:一种是在搜索的时候出现,多半是由于索引创建完毕之后被移动过,如果创建索引的时候不出现该错误,搜索的时候也一般是不会出现的.如果出现了,有两种处 ...

  10. java跑到linux上,Java程序在Linux上运行虚拟内存耗用很大

    突然集群的2个节点挂了,通过top查看, 虚拟内存22G, 通过 pmap -x 8 | grep anon 一大堆64M Linux下glibc的内存管理机制用了一个很奇妙的东西,叫arena.在g ...

最新文章

  1. boolean searching, it is so important for searching your papers
  2. 20155313 2016-2017-2 《Java程序设计》第三周学习总结
  3. MEF初体验之九:部件生命周期
  4. 施一公的三位杰出女弟子
  5. 微课|Python三种方法统计各分数段内的人数(17分钟)
  6. 《AlwaysRun!》第五次作业:项目需求分析改进与系统设计
  7. SpringCloud 应用在 Kubernetes 上的最佳实践(一):开发篇 | 凌云时刻
  8. 如何查看谷歌卫星地图每级分辨率的两种方法
  9. 判断一个正整数是素数还是合数
  10. 谁是 GameFi 3 月最大的赢家| March Monthly Report
  11. Python代码格式化工具autopep8安装及使用极简版
  12. Simon‘s writting 全网最全笔记
  13. 浏览器打印功能print.js
  14. 应该怎样学习Unity3D
  15. 采访ClickHouse 布道者郭炜
  16. 通达信头肩底形态选股公式,突破波峰发出信号
  17. CSDN 专栏的创建与管理
  18. windows server 2003安装SP2补丁出现密钥无效的解决方法
  19. 深度解读新档案法①:企业如何提高档案管理规范性?
  20. 计算机专业 教育部学科排名(你们要的排名来了!)

热门文章

  1. STM32与宇电设备实现AI-BUS通讯
  2. 最优化学习笔记(五)牛顿法及拟牛顿法
  3. [前台]---input标签中的hidden,浏览器差异问题
  4. 个人或结对项目 - 动态显示程序运算的过程
  5. IOC操作Bean管理XML方式(注入外部bean)
  6. JAVA入门级教学之(do...while循环)
  7. 红包指定分配金额php,php仿微信红包分配算法的实现方法_PHP
  8. python分析股票数据_Python数据可视化——股票数据分析
  9. bootstrap table格式化字符串_你要的PHP字符串处理函数都在这了!
  10. python 代理服务器_Python实现HTTP代理服务器