2 pd10340927 pd10340927 于 2015.06.19 13:23 提问

struts文件下载,下载byte[]二进制,被直接打开的问题
最近在改一个原来的邮件系统,原来系统的附件是二进制,我从数据库拿出来只能是个byte[],我将其用new ByteArrayInputStream(unZip)转化为intputStream,然后通过struts2下载,以为不是FileInputStream,在客户端全部都被直接打开了,各位大神有什么解决办法

配置文件:


image/png,image/jpeg,image/gif,text/plain

4096
filename=${fileName}

action中代码:
    public String findFile() throws Exception {
    byte[] b = mailService.findFile(msgid, num,mailSt);
    byte[] unZip = unZip(b);
    HttpServletResponse resp = ServletActionContext.getResponse();
    resp.setCharacterEncoding("text/html;charset=GBK");
    this.inputStream = new ByteArrayInputStream(unZip);
    return "stream";
}

4个回答

u012006909
u012006909   2015.06.19 13:34

Action中的代码是怎么写的?贴出来看看

beacon_2011
beacon_2011   Rxr 2015.06.19 13:35

下载的什么文件类型啊?text?

bulusli3
bulusli3   Ds   Rxr 2015.06.19 15:03

你需要配置action的result type=stream及相关的参数如contentType等等。

pd10340927
pd10340927   2015.06.19 15:48

action中的代码
public String findFile() throws Exception {
byte[] b = mailService.findFile(msgid, num,mailSt);
byte[] unZip = unZip(b);
HttpServletResponse resp = ServletActionContext.getResponse();
resp.setCharacterEncoding("text/html;charset=GBK");
this.inputStream = new ByteArrayInputStream(unZip);
return "stream";
}
配置文件:


image/png,image/jpeg,image/gif,text/plain

4096
filename=${fileName}

Csdn user default icon
上传中...
上传图片
插入图片