JAVA 文件下载问题

josh1707 发布于 2013/08/10 14:08
阅读 507
收藏 0

环境:IE8。所需下载的文件为绝对路径:例如:c:/file/xxx.txt

代码:JSP:<a href="javascript:void(0);" onclick="downloadFile(fileId)" >fileName</a>

        JS:

function downloadFile(fileId){
	$.ajax({
		url:"isFileExist",	
		type:"POST",
		dataType:"json",
		data:{"fileId":fileId},
		success:function(data){		
			if(data.isExist){
		        location.href="downloadFile?fileId="+fileId;
		        //window.open("downloadFile?fileId="+fileId);
			}else{
				alert("文件不存在");
			}
		}	
	})
	
}

下载的java:


                response.setContentType("application/octet-stream");
		response.addHeader("Content-Disposition","attachment;filename=" + "\"" + fileName + "\"");
		OutputStream out = null;
		FileInputStream in = null;
		try{
			out = response.getOutputStream();
			in = new FileInputStream(downloadFile);

			byte[] b = new byte[1024];
			int i = 0;

			while((i = in.read(b)) > 0)
			{
				out.write(b, 0, i);
			}
			out.flush();
		}
		catch(Exception e){
			//System.out.println("Error!");
			e.printStackTrace();
		}
		finally{
			if(in != null){
				in.close();
				
			}
			if(out != null){
				out.close();
				
			}
		}

问题:

1.用location.href=""调用是,IE会阻止下载。弹出以下:

网上说可以修改浏览器安全等级。但是我不想这么做?有没有修改代码可以解决的方案?

2.用window.open();是浏览器会快速打开一个页面,然后页面闪退。文件也没有下载?


期望:

我想做到能够正常下载文件。即IE不阻止。


加载中
0
0
okgood
okgood
日出东方,唯我java不败
0
法修
法修

引用来自“okgood”的答案

日出东方,唯我java不败
靠 okgood TMD 祸害CSDN不够 还跑到oschina来了
pantrick
pantrick
你这句话,惊出我一身冷汗!
gKiwi
gKiwi
详见:http://bbs.csdn.net/topics/390091473
0
罪恶的花生
罪恶的花生
window.open();的方法没有问题,我一直都是这样干的,打开后,然后就会出现一个保存对话框
0
josh1707
josh1707

引用来自“罪恶的花生”的答案

window.open();的方法没有问题,我一直都是这样干的,打开后,然后就会出现一个保存对话框

其他浏览器可以。但是IE却闪退。可以看到选项卡开了一个页面,但是马上就关闭。而且也没有弹出下载框。请问您有遇过吗?

而且,在open的时候,浏览器会弹出拦截弹框提示~~其他open没有,就是下载这个会有这种情况。请问这是什么情况呢?

0
y
yuchen
  response.setContentType("text/html;charset=UTF-8");  response.setHeader("Content-disposition", "attachment; filename=\"" +fileName+ "\"");  你可以设置页面头 看看。
返回顶部
顶部