Java下载问题,怎样让IE下载该文件,而不是打开该文件?
程序中显示由wordEXCEL转化的HTML文件,当点击下载的时候,有的会弹出下载框,有的却被直接打开了,这需要改代码还是需要配置IE呢??求速解,还在加班中。。谢谢...
程序中显示由word EXCEL转化的HTML文件,当点击下载的时候,有的会弹出下载框,有的却被直接打开了,这需要改代码还是需要配置IE呢??求速解,还在加班中。。谢谢
展开
2个回答
展开全部
//·设置响应消息头,告诉浏览器当前响应是一个下载文件
response.setContentType( "application/x-msdownload");
//考虑到文件名中可能包含非ASCII码字符,所以应该进行编码后再传输
fileName = URLEncoder. encode(fileName, "UTF-8");
//告诉浏览器,当前响应数据要求用户干预保存到文件中,以及文件名是什么
response.setHeader( "Content-Disposition", "attachment;filename=" +fileName);
response.setContentType( "application/x-msdownload");
//考虑到文件名中可能包含非ASCII码字符,所以应该进行编码后再传输
fileName = URLEncoder. encode(fileName, "UTF-8");
//告诉浏览器,当前响应数据要求用户干预保存到文件中,以及文件名是什么
response.setHeader( "Content-Disposition", "attachment;filename=" +fileName);
更多追问追答
追问
您好,能帮我解释一下吗??为什么有的能弹出下载框,有的就直接打开了呢??你写的这些是在哪配置的啊??
还有就是你说的编码问题,我在将word与EXCEL转化成HTML文件的时候有时是UTF-8编码,有的时候是GB2312编码。。。这个能控制吗??
会哪个就帮我解释哪个,谢谢啊
追答
能被浏览器解析的格式,浏览器就直接显示。所以要想实现下载,就需要设置响应消息的类型,告诉浏览器这是一个需要下载的文件,不需要显示。你为什么要将它转为HTML格式呢?
展开全部
procedure htmlHeadDown(const fName: widestring = ''; const ftype:String='unknow');
var mtype:String;
begin
bHead := true;
if ftype='' then mtype:=getMineType(fname) Else mtype:=ftype;
if TntSysUtils.WideTextPos('MSIE', EnvW('HTTP_USER_AGENT') )>0 Then Begin
writeLn('content-disposition:attachment; filename=' + UrlEncode(fname, false));
writeLn('content-type:Application/'+mtype+'; charset:utf-8');
writeLn('');
End Else Begin
writeLn('content-disposition:attachment; filename*="utf8''''' + Utf8Encode(fname)+'"');
writeLn('content-type:Application/'+mtype+'; charset:utf-8');
writeLn('');
end;
end;
请参考,应该能看得懂意思的。
追问
额额,高看我了。。入行时间短,解释下吧。。谢谢。。稍微讲解一下,万分感谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询