文件下载:'Content

发布时间:2024-11-28 04:37

限制后台下载:避免在玩游戏时下载大文件 #生活技巧# #数码产品使用技巧# #游戏优化攻略#

最新推荐文章于 2024-09-03 14:23:14 发布

qiaqia609 于 2013-09-03 19:51:10 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

文件下载时常会出现如下问题: response.setHeader("Content-disposition","attachment; filename="+as+"");
如果as直接写中文名字时,就会直接在IE页面打开Excel文件(弹出后点打开会在IE页面打开,注意此时的“你想打开或保存此文件吗?”,名称会显示一个类似CAK....的名称,实现上并不是正常的 *.xls格式的名称),如图所示:查看更多精彩图片

而不是另外弹出并打开Excel文件。解决办法是:(程序片段)

       

String as="我明白了.xls";
        String fileName =as;// = java.net.URLEncoder.encode(as, "UTF-8");
        /*根据request的locale 得出可能的编码,中文操作系统通常是gb2312*/
            fileName = new String(as.getBytes("GB2312"), "ISO_8859_1");  
            as=fileName;
        response.setContentType("application/vnd.ms-excel");
        response.setHeader("Content-disposition","attachment; filename="+as+"");   

              BufferedInputStream bis = null;
     BufferedOutputStream bos = null;
     try {
        // bis = new BufferedInputStream(new FileInputStream(getServletContext().getRealPath("" + filename)));
      bis = new BufferedInputStream(new FileInputStream(dirFile));
      bos = new BufferedOutputStream(response.getOutputStream());

         byte[] buff = new byte[2048];
         int bytesRead;

         while(-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
             bos.write(buff,0,bytesRead);
         }
     } catch(final IOException e) {
         System.out.println ( "出现IOException." + e );
     } finally {
         if (bis != null)
             bis.close();
         if (bos != null)
             bos.close();
     }

程序段中最关键的一句:

new String(as.getBytes("GB2312"), "ISO_8859_1");  

将文件命名转码. OK结果正常了>>>

查看更多精彩图片

这样就可以下载时用中文名称了,并且是另外打开Excel文件的。

转载:http://cutelion.blog.hexun.com/6980666_d.html

网址:文件下载:'Content https://www.yuejiaxmz.com/news/view/296203

相关内容

Spring中文件的上传下载
header('Content
心愿清单下载(心愿生活记录app)V3.5.5.2 手机简化版软件下载
小决定下载安装
腾讯桌面整理软件单文件版下载
神翻译:储物间=Store between content ?
class=“content”>
Phala软件下载
清单文件小管家软件下载
微信语音助手下载(暂无资源) 微信语音助手v3.1.0下载

随便看看