在采用struts2注解方式下载文件时,点击下载后不出现下载,用chrome看了,调用没报错,
Request Method:GET
Status Code:200 OK
就是不能下载。
页面的调用方式为:
$.ajax({
type:"get",
async:true,
url:"/PaperManager/down!downLoadFile?attachId="+'${attachId}',
dataType:"json",
success:function(res){
alert("res:");
}
});
但如果我直接调用链接 http://127.0.0.1:8080/PaperManager/down!downLoadFile?attachId=1550
又是可以下载的
这是什么情况呢?求解答
我的注解配置如下:
@Result(name="download",type="stream",
params={"contentType", "application/octet-stream","inputName", "inputStream",
"contentDisposition", "attachment;filename=\"${fileName}\"","bufferSize", "4096"})
后台下载方法为:
public class DownAction {
private String fileName;
private String path;
private InputStream inputStream;
public String downLoadFile() throws Exception {
//根据ID获取附件信息
Attachment attach=attachService.getAttachByID(Long.parseLong(attachId));
fileName=attach.getPicFileName();
path="/upload/"+fileName;
inputStream=ServletActionContext.getServletContext().getResourceAsStream(path);
return "download";
}
/...省略get,set方法
}
配置临时目录了么?问题我重新修改了,麻烦看看。配置了,在struts.xml内配置了<constantname="struts.multipart.saveDir"value="/tmp"></constant>
哎,为什么你们都要犯这个错误呢?
ajax不是用来下载文件的.
你直接window.open(url);就行了,就会直接提示下载.
嗯嗯后来发现了。。习惯那么调用了。谢了~版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。