java servlet文件下载_Java servlet实现的文件下载,下载的名字为中文,文件内容就为空?...

也就是说,中文他就识别不出正确路径。我的文件名称是:currentTime+"_"+filename,(filename为中文,例如:1418192996741_中文名.txt)路径:D:/project/workspace/Phone/WebConten...

也就是说,中文他就识别不出正确路径。我的文件名称是:currentTime+"_"+filename,(filename为中文,例如:1418192996741_中文名.txt)

路径:D:/project/workspace/Phone/WebContent/sdnfile/download/

public void doGet(HttpServletRequest request,

HttpServletResponse response)

{

String aFilePath = null; //要下载的文件路径

String aFileName = null; //要下载的文件名

FileInputStream in = null; //输入流

ServletOutputStream out = null; //输出流

String filename = SdnUploadServlet.filename;//上传文件名

String currentTime = Long.toString(SdnUploadServlet.currentTime);

byte[] a;

try {

aFilePath = "D:/project/workspace/Phone/WebContent/sdnfile/download/";

//先URLENcode一下,在DEcode,我是这样想的,但程序不识别解码后的文件名,就会自己新建一个新的空白文件

aFileName = currentTime+"_"+filename;//java.net.URLEncoder.encode(currentTime+"_"+filename, "utf-8");

a = aFileName.getBytes("utf-8");

String temp = java.net.URLEncoder.encode(new String(a, "utf-8"), "utf-8");

temp = StringUtils.replace(temp, "+", "%20");

aFileName = java.net.URLEncoder.encode(temp, "utf-8");

} catch (UnsupportedEncodingException e1) {…………略……………………

try

{response.setContentType("text/plain;charset=UTF-8");

response.setHeader("Content-disposition", "attachment; filename="+ java.net.URLDecoder.decode(aFileName,"UTF-8"));

in = new FileInputStream(aFilePath + java.net.URLDecoder.decode(aFileName,"UTF-8"));

System.out.println(aFilePath + aFileName);

out = response.getOutputStream();

}

…………略……………………

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值