关于WebShpere服务器下jsp页面设置为调用EXCEL打开的问题

alphazhao 2004-06-29 11:41:57
jsp界面可以通过在文件开头定义如下:
<%response.setContentType("application/vnd.ms-excel");%>
<%response.setHeader("Content-Disposition", "attachment;filename=\""+new String("资金信息表.xls".getBytes(),"ISO-8859-1")+"\"");%>
以达到访问jsp时会出现提示“文件下载”界面,选择“打开”则会自动调用excel打开该界面,选择“保存”则自动保存成文件名“资金信息表.xls”的文件。
但是我现在遇到一个问题,就是倘若服务器是Windows环境的话,客户端ie访问正常,不会出现任何问题。
倘若服务器是AIX(UNIX)系统的话,客户端ie访问虽然仍然出现提示“文件下载”界面,但有奇怪的异常。比如选择“打开”按钮时,会提示你选择打开方式,而不是自动调用EXCEL程序打开。而选择“保存”按钮时,文件名不再是‘资金信息表.xls’,而成了‘CAYBG5AB.’之类的莫名字符串。
不知道哪位大侠有处理AIX下Webshpere服务器关于jsp用EXCEL调用打开的经验啊?
也不知怎么回事,郁闷!知道的请帮帮忙吧!
兄弟先谢了!
...全文
226 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
alphazhao 2004-07-09
  • 打赏
  • 举报
回复
揭帖!
几位参与的xdjm们都有分,谢谢支持
alphazhao 2004-07-09
  • 打赏
  • 举报
回复
终于通过无数次测试搞定!共享心得
其实归根结底是编码问题,只要生成文件有.xls后缀的话,自然会自动调用excel打开文件的。我用英文名测试通过,可以正常打开和保存
代码如下---------------------
<%response.setContentType("application/vnd.ms-excel");%>
<%response.setHeader("Content-Disposition", "attachment;filename=mytest.xls");%>
--------------------------
既然发现是编码问题,那么我在切缓多种转换模式后,用GBK字符集替换就行了,如下
-------------------------------------------------
<%response.setHeader("Content-Disposition", "attachment;filename="+new String("年度计划表.xls".getBytes("GBK"),"ISO-8859-1")+"\"");%>
-------------------------------------------------

其实就是这么一个小问题,唉,耽搁我两天时间。看来俺水平还是不足啊
stonegump 2004-07-09
  • 打赏
  • 举报
回复
这样写死不好吧?new String("资金信息表.xls".getBytes(),"ISO-8859-1")
应该取操作系统的编码方式,免得换个平台就要改动。
另外,试一下:
Response.AddHeader( "Content-Disposition ", "attachment; filename= " + HttpUtility.UrlEncode(File.Name))
azurewrath 2004-07-09
  • 打赏
  • 举报
回复
你先用个英文的文件名保存试试看,再归结为字符编码问题也不迟
killwin 2004-07-09
  • 打赏
  • 举报
回复
如果是只有windows可以正常的话,估计是编码问题了,去掉getBytes试试看吧
alphazhao 2004-07-08
  • 打赏
  • 举报
回复
兄弟我查了网络上诸多文章,估计没有直接调用excel打开的原因还是在于文件名出现变化的缘故。如我问题所说:
----------------------------
比如选择“打开”按钮时,会提示你选择打开方式,而不是自动调用EXCEL程序打开。而选择“保存”按钮时,文件名不再是‘资金信息表.xls’,而成了‘CAYBG5AB.’之类的莫名字符串。
----------------------------
很明显不但文件名称变了,而且没有了xls后缀,所以我估计没有自动调用Excel打开的原因便在于后缀丢失的问题上面。

--------------
所以现在问题归根于:为什么我的代码会出现文件名称由
‘资金信息表.xls’而成了‘CAYBG5AB.’这种情况??????????????????
还请诸位高手能人多多帮忙
alphazhao 2004-07-06
  • 打赏
  • 举报
回复
就是因为直接在网页中打开,会造成很多不便才需要弹出保存、打开提示处理啊。
你想像看,直接在ie中打开,用户无法保存,不好编辑打印及复制等处理,多不方便。
sigh
200分没人拿么?
alphazhao 2004-07-05
  • 打赏
  • 举报
回复
不会吧,没有人知道吗?
按例说这种问题应该很常见吖
春秋2000 2004-07-05
  • 打赏
  • 举报
回复
关注!
killwin 2004-07-05
  • 打赏
  • 举报
回复
好象不用那么烦吧,我用sendRedirect("aaa.xls"),就可以了,什么都不提示,直接在网页中打开啊,不过好象用forward不行。
ecaol 2004-07-05
  • 打赏
  • 举报
回复
up
pastelife 2004-07-02
  • 打赏
  • 举报
回复
concerning..
alphazhao 2004-07-02
  • 打赏
  • 举报
回复
唉,文件名成了莫名奇妙的字符可以解释是字符编码问题
但是无法自动调用EXCEL打开文件应该不是这个问题吧?
caiyi0903 2004-06-29
  • 打赏
  • 举报
回复
我也用WEBSPHERE开发,也曾经遇到过类型编码问题,我怀疑是LINUX/UNIX的字符编码问题。
我到现在也不是很清楚,关注一下了。
KevinListening 2004-06-29
  • 打赏
  • 举报
回复
兄弟!我也是这个问题,我比你还惨。我用
<%response.setContentType("application/vnd.ms-excel");%>
<%response.setHeader("Content-Disposition", "attachment;filename=\""+new String("资金信息表.xls".getBytes(),"ISO-8859-1")+"\"");%>

他直接就出错了!!出现Save,然后Save的是这个Jsp文件阿。。
alphazhao 2004-06-29
  • 打赏
  • 举报
回复
不会吧?
没有哥们遇到这种问题吗?200分啊我给

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧