读书人

xls文件可以下载不能打开,该如何处理

发布时间: 2012-01-08 22:48:50 作者: rapoo

xls文件可以下载不能打开
服务器上的一个中文文件名的文件,我写了一个程序来下载:

response.setHeader( "Content-Disposition ", "attachment; filename= " + toUtf8(fileName));
response.setContentType( "application/octet-stream ");
测试的时候,IE会弹出对话框并有三个按钮:“[打开]、[保存]、[取消]”。点保存的话,文件名没有任何问题,没有乱码。
如果点打开,则会说文件名不对,因为文件名全是%E4%8F...%6F.xls。
我感觉好像直接打开的话,文件名的utf-8编码没有转成合适的编码。



[解决办法]
文件名应该是加密过的了,你必须解密回来,因为如果文件名中文的话,http发送会有错误,所以一般把文件名加密.
[解决办法]
由于中文文件名的原因。
我在做文件下载时,一般将文件转成流输出到客户端。
[解决办法]
直接用中文有什么问题?
[解决办法]
看错了,以为是httpclient传送数据.
建议调试一下 filename 及 toUtf8(fileName) 的值.
特别是toUtf8函数的代码,可能对文件名加密了.
[解决办法]
toUtf8 应该是自己写的函数吧?
[解决办法]
fileName = URLEncoder.encode(fileName, "UTF-8 ");//用这个控制文件名的乱码问题

response.setContentType( "application/x-msdownload;charset=UTF-8 ");
response.setHeader( "Content-Disposition ", "attachment; filename= "
+ fileName);

这么写头试试

读书人网 >J2SE开发

热点推荐