我需要在java中编写一个下载servlet来从Web服务器下载文件。我按如下方式设置响应参数:
resp.setContentType( (mimetype != null) ? mimetype : "application/octet-stream");
resp.setContentLength( (int)f.length() );
resp.setHeader( "Content-Disposition",
"attachment; filename=\"" + filename + "\"" );
代码似乎与firefox,chrome和IE7一起使用,但是在IE6中,它在文件名中间添加了“[1]
”。例如。 test[1]_check.txt
(而不是test_check.txt
)。在客户端没有重复的文件副本,我无法理解我哪里出错了。我的响应参数有问题吗?
提前致谢
答案 0 :(得分:1)
我想我理解这个问题...在创建要下载的文件的文件名时,它是2个字符串的串联,例如:test.pdf_check.txt。
Firefox和Chrome使用相同的名称下载,但IE6在它遇到的第一个扩展名(.pdf)之前插入[1],所以我得到了测试[1] .pdf_check.txt。
我删除了第一个扩展程序,它似乎工作正常。
答案 1 :(得分:0)
检查Temp文件夹:
C:\Documents and Settings\YourUserName\Local Settings\Temp
也许有以前下载文件的副本
答案 2 :(得分:0)
我认为问题不在setHeader()
。确定filename
的值的代码怎么样?也许价值是连接的?