前台用ajax传文件名到后台,struts2接收,并下载,但是页面并没有弹出保存另存为的那个窗口,为什么? 5

代码如下:前台Ext.Ajax.request({url:'chat/downloadfile.action',method:'post',params:{name:na... 代码如下:
前台
Ext.Ajax.request({
url:'chat/downloadfile.action',
method:'post',
params:{name:name},
success:function(response,option){
Ext.Msg.alert("消息提示","预览成功");
},
failure:function(response,option){
Ext.Msg.alert("消息提示","预览失败");
}
});
后台:
public void downLoadFile() throws IOException {
HttpServletResponse response = ServletActionContext.getResponse();
HttpServletRequest request = ServletActionContext.getRequest();
String filePath = request.getSession().getServletContext().getRealPath("/") + "uploadFiles\\";
String fileName = request.getParameter("name");
FileInputStream fs = null;
filePath = filePath + fileName;
try {

fs = new FileInputStream(new File(filePath));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//设置响应头和保存文件名
response.setContentType("APPLICATION/OCTET-STREAM");
response.setHeader("Content-Disposition", "attachment; filename=\"" +
fileName + "\"");
//写出流信息
int b = 0;
try {
PrintWriter out = response.getWriter();
while ((b = fs.read()) != -1) {
out.write(b);
}
fs.close();
out.close();
System.out.println("文件下载完毕.");
} catch (Exception e) {
e.printStackTrace();
System.out.println("下载文件失败!");
}
}
展开
 我来答
lmy_sk521
2012-12-29 · TA获得超过2272个赞
知道小有建树答主
回答量:1330
采纳率:73%
帮助的人:720万
展开全部
如果上传和下载文件不用异步,用表单提交
你用异步上传只是传的文件名,并没有把文件上传的服务器,就算是可以下载,但是下载的文件也不是你上传的文件
百度网友48d5dc9
2012-12-28 · TA获得超过448个赞
知道小有建树答主
回答量:476
采纳率:0%
帮助的人:203万
展开全部
弹出保存另存为,是给前台看的
你把要下载的东西放在web-app下,然后页面上链接到这个文件,
页面上点就会出现的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
frank_prefect
2012-12-29 · TA获得超过103个赞
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:118万
展开全部
用ajax 形式不行,要用form submit 或者 window.href.location 这种方式才会弹出下载页面
追问
为什么我那个下载文件打开以后是空白的 什么都没有啊
追答
后台 应该有execption。或者流中就没有东西
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式