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

页面设置隐藏的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 ...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/508260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

强行更改linux服务器时间,加强Linux服务器安全的20项建议

一般情况下用 Linux 做桌面在默认配置下是很安全的,我在一定程度上同意这个说法(很值得商榷的话题)。不过 Linux 内置的安全模型和工具做得确实很到位,用户只需进行简单的调整和自定义就可以加强 Linux 服务器安全。与恶意用户做斗争对于所有 Linux 系统…

webshell提权教程linux,Linux下WEBSHELL提权

用phpshell2.0和Linux Kernel2.6x 本地溢出代码配合提ROOT,现在不少LINUX主机都还有这个本地溢出漏洞。前提&#xff1a;1、目标机上安装了GCC能编译源码2、Kernel 2.6.x (> 2.6.13 && < 2.6.17.4)因为是在webshell里溢出成功也得不到返回的ROOT SHELL,所…

Linux宏定义实现类成员函数,全面解析Linux内核的同步与互斥机制

http://blog.csdn.net/sailor_8318/archive/2008/06/30/2599357.aspx【摘要】本文分析了内核的同步及互斥的几种机制&#xff1a;原子运算符(atomicoperator)、自旋锁Spinlock、等待队列Waitqueue、事件Event、completion、信号量Semaphore及其优化版互斥锁&#xff0c;详细分析…

Linux命令sngre,linux gre隧道创建

linux gre隧道创建实验环境两台可以相互通信的虚拟机&#xff0c;两个虚拟机在不通的网段。如下所示host A:[[email protected] ~]# ip a1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127…

linux终端提示符含义,Linux:终端提示符 (prompt) 不如期生效原因

前言先来简单介绍下, prompt是什么鬼? 顾名思义就是提示符的意思, 看起来和我们遥远, 但实际上只要是每个接触shell的童鞋, 都有看到, 那就是我们在输命令时前面的那串提示符.例如:当然, 这个样式是可以修改的, 这就涉及到我们的PS1和PS2了, 有经验或者以前有设置过的童鞋估计…

skyeye linux qt,ARM仿真器SkyEye的安装及使用

SkyEye是一个开源软件(OpenSource Software)项目&#xff0c;中文名字是"天目"。SkyEye的目标是在通用的Linux和Windows平台上实现一个纯软件集成开发环境&#xff0c;模拟常见的嵌入式系统&#xff0c;可在SkyEye上运行μCLinux以及μC/OS-II等&#xff0c;以及各种…

Linux 读写 优化 ssd,linux ssd 优化

一、修改默认的固态硬盘(SSD)柱面大小提升Linux下固态硬盘的使用率&#xff0c;在安装Linux操作系统前就应该做相关工作。系统会先在磁盘上创建分区&#xff0c;通常创建的分区包含固定数量的柱面&#xff0c;而默认情况下&#xff0c;每个柱面由16065512个字节的扇区组成。现在…

linux中dev目录的作用,Linux 的dev目录详解和Linux系统各个目录的作用

Linux /dev目录详解在linux下&#xff0c;/dev目录是很重要的&#xff0c;各种设备都在下面。下面简单总结一下&#xff1a; dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部…

linux 类型排序,Linux命令之排序命令sort使用实例

名称&#xff1a;sort位置&#xff1a;/usr/bin/sort权限&#xff1a;所有用户用法&#xff1a; sort [OPTION]... [FILE]...sort [OPTION]... --files0-fromF选项&#xff1a;-b --ignore-leading-blanks 忽略最前面的空格-f --ignore-case fold lower case to…

2g 双核电脑 linux,9208)(奔腾双核E5200/2G/320G)电脑详细技术

处理器型&#xff1a;intel 酷睿2双核 p7350 intel 酷睿2双核 p7450 intel 酷睿2双核 t6600 intel 奔腾双核t4300 intel 奔腾双核 t4400 intel 赛扬双核 t1600 intel 赛扬双核 t3000操作系统&#xff1a;windowsvista home basic dos标配内存&#xff1a;1gb 2gb 硬盘容量&…

linux shell 高级编程,shell高级编程

条件选择if语句选择执行&#xff1a; 注意&#xff1a;if语句可嵌套单分支if 判断条件;then条件为真的分支代码fi双分支if 判断条件; then条件为真的分支代码else条件为假的分支代码fi多分支if 判断条件1; then条件为真的分支代码elif 判断条件2; then条件为真的分支代码elif 判…

linux menuconfig usb,[Linux]make menuconfig里面的选项很重要

最近在用USB摄像头&#xff0c;发现驱动正常加载&#xff0c;插上USB摄像头&#xff0c;内核设备总是无法加载摄像头的驱动&#xff0c;也没有vidoe0设备&#xff0c;但我以前在2410上是可以的。如下&#xff1a;/ # usb 1-1: new full speed USB device using s1r72v27 and ad…

linux apache 大文件,Apache下error.log文件太大的处理方法

Apache下error.log文件太大的处理方法2019年05月03日| 萬仟网网络运营| 我要评论清除error.log、access.log并限制apache日志文件大小的方法 有个客户反映vps网站打不开&#xff0c;登录系统检查下&#xff0c;客户是win2003系统&#xff0c;发现放置网站文件的清除error.log、…

c语言程序设计臧,清华大学出版社-图书详情-《C程序设计基础(第2版)》

前言C语言是在由UNIX的研制者(美国贝尔实验室的Dennis Ritchie和Ken Thompson)于1970年研制出的B语言的基础上发展和完善起来的。1972年&#xff0c;在DEC PDP-11计算机上实现了最初的C语言&#xff0c;此后C语言伴随着计算机的发展一直走到了今天。C语言是一种支持过程化的、实…

c语言程序设计实践课选题,c语言程序设计实践实验题目

c语言程序设计实践实验题目 绥化学院程序设计实践实验报告范例 参考1实验题目&#xff1a;循环结构程序设计实验目的&#xff1a;1.熟悉 VC6.0 的运行环境&#xff0c;掌握 C 程序的执行方法&#xff1b;2.掌握三种基本数据类型、部分运算符号和常用函数&#xff1b;3.掌握三种…

c语言上机指导答案清华,第一章自测练习答案清华大学c语言习题实验指导及课程设计...

第一章自测练习答案清华大学c语言习题实验指导及课程设计 第一章 自测练习参考答案 一&#xff0e;简答题 1&#xff0e;源程序是程序员创建的&#xff0c;目标程序是编译器创建的&#xff0c;可执行程序是连接器创建的。 2&#xff0e;步骤如下&#xff1a;1)说明程序需求&…

c语言生成随机的坐标,C语言文件的随机读写

前面介绍的文件读写函数都是顺序读写&#xff0c;即读写文件只能从头开始&#xff0c;依次读写各个数据。但在实际开发中经常需要读写文件的中间部分&#xff0c;要解决这个问题&#xff0c;就得先移动文件内部的位置指针&#xff0c;再进行读写。这种读写方式称为随机读写&…

c语言 画线函数,c语言绘制函数曲线

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼我这种方法为什么图形只能显示一下就不见了&#xff0c;这是为什么&#xff1f;能不能用在双曲线上&#xff1f;&#xff1f;能的话改哪里&#xff1f;&#xff1f;#include#includefloat a,b,c,xmin,xmax,max; void menu(){printf…

k6前级效果器怎么用_新手学习电吉他,效果器应选择单块还是综合?

作为一个新手来说&#xff0c;我建议一开始先选择综合型效果器。这里我们先简单介绍下综合效果器与单块效果器。综合效果器可以理解为多个单块的综合体&#xff0c;即包含了很多种效果。一块大综合效果器可能就有三四十种预置音色&#xff0c;有过载、失真、法滋、延迟、混响、…

android监听方法的耗时时间,Android从网络获取北京时间以及动态的监听时间

方式一:public static void main(String[] args) throws Exception {URL urlnew URL("http://www.bjtime.cn");//取得资源对象URLConnection ucurl.openConnection();//生成连接对象uc.connect(); //发出连接long lduc.getDate(); //取得网站日期时间Date datenew Da…