开发者社区> 问答> 正文

Struts2注解文件下载?报错

在采用struts2注解方式下载文件时,点击下载后不出现下载,用chrome看了,调用没报错,

Request URL: http://127.0.0.1:8080/PaperManager/down!downLoadFile?attachId=1550

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方法

}





展开
收起
爱吃鱼的程序员 2020-06-22 11:45:59 512 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    配置临时目录了么?问题我重新修改了,麻烦看看。配置了,在struts.xml内配置了<constantname="struts.multipart.saveDir"value="/tmp"></constant>

    哎,为什么你们都要犯这个错误呢?

    ajax不是用来下载文件的.

    你直接window.open(url);就行了,就会直接提示下载.

    嗯嗯后来发现了。。习惯那么调用了。谢了~

    2020-06-22 11:46:18
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载