读书人

文件下载:quot;Content-dispositionquot;quot;atta

发布时间: 2013-07-04 11:45:40 作者: rapoo

文件下载:"Content-disposition","attachment; filename=中文名>>>解决方案


而不是另外弹出并打开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");????? ?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");?

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

读书人网 >操作系统

热点推荐