问题描述
- struts文件下载,下载byte[]二进制,被直接打开的问题
-
最近在改一个原来的邮件系统,原来系统的附件是二进制,我从数据库拿出来只能是个byte[],我将其用new ByteArrayInputStream(unZip)转化为intputStream,然后通过struts2下载,以为不是FileInputStream,在客户端全部都被直接打开了,各位大神有什么解决办法
配置文件:
image/pngimage/jpegimage/giftext/plain
4096
filename=${fileName}action中代码: public String findFile() throws Exception { byte[] b = mailService.findFile(msgid nummailSt); byte[] unZip = unZip(b); HttpServletResponse resp = ServletActionContext.getResponse(); resp.setCharacterEncoding(""text/html;charset=GBK""); this.inputStream = new ByteArrayInputStream(unZip); return ""stream"";}
解决方案
Action中的代码是怎么写的?贴出来看看
解决方案二:
下载的什么文件类型啊?text?
解决方案三:
你需要配置action的result type=stream及相关的参数如contentType等等。
解决方案四:
action中的代码
public String findFile() throws Exception {
byte[] b = mailService.findFile(msgid nummailSt);
byte[] unZip = unZip(b);
HttpServletResponse resp = ServletActionContext.getResponse();
resp.setCharacterEncoding(""text/html;charset=GBK"");
this.inputStream = new ByteArrayInputStream(unZip);
return ""stream"";
}
配置文件:
image/pngimage/jpegimage/giftext/plain
4096
filename=${fileName}
时间: 2024-12-22 06:59:32