stuts下载byte-struts文件下载,下载byte[]二进制,被直接打开的问题

问题描述

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

stuts下载byte-struts文件下载,下载byte[]二进制,被直接打开的问题的相关文章

IE8 下载excel,无法定义下载文件的格式和名称

问题描述 在别的浏览器都正常,代码如下:byte[]fileContents=Encoding.Default.GetBytes(ss.ToString());returnFile(fileContents,"application/-excel","ss.xls"); 文件类型换过"application/-excel",application/x-xls,application/ms-excel,application/vnd.ms-exce

使用 Axel 命令行下载器/加速器加速下载

Axel 是一个轻量级下载程序,它和其他加速器一样,对同一个文件建立多个连接,每个连接下载单独的文件片段以更快地完成下载. Axel 支持 HTTP.HTTPS.FTP 和 FTPS 协议.它也可以使用多个镜像站点下载单个文件,所以,Axel 可以加速下载高达 40%(大约,我个人认为).它非常轻量级,因为它没有依赖并且使用非常少的 CPU 和内存. Axel 一步到位地将所有数据直接下载到目标文件(LCTT 译注:而不是像其它的下载软件那样下载成多个文件块,然后拼接). 注意:不支持在单条命令

win7系统下载文件没有出现下载对话框怎么办

由于这个问题是跟另外一个xp系统出现这个问题是一样的所以我把那边的问题直接复制过来了.xp系统下载文件没有出现下载对话框 问题的具体描述:下载的文件通常是压缩文件,其他类型的文件小编没去尝试.因为这是一个朋友问我的问题,而下载完zip或RAR文件后,不止没下载对话框,让你选择保存的位置,下载完还会自动打开. 1 默认存放位置都是一样的,前提是你没把你的"我的文档"遇到其他位置 下载文件位置:C:WINDOWSsystem32configsystemprofileLocal Settin

如何将迅雷7设置成默认的下载工具无需在下载时选择

当我们在下载文件或者是资料的时候,我们很多人都喜欢使用迅雷工具来下载,因为迅雷是我们常用的下载工具,但是大部分容量比较小一点的文件之类的,都默认设为了浏览器下载的方式,这可能会让喜爱迅雷下载的朋友感到很头疼,那如何将迅雷7设置为默认的下载工具呢? 方法/步骤 1 首先打开迅雷7下载的页面,点击登录; 2 已经注册迅雷会员的,输入账号密码登录迅雷; 3 迅雷会员成功登录,状态如下所示; 4 选择迅雷右方上角的菜单---配置----下载中心的选项; 5 进入到监视设置的页面中,我们将选中监视浏览器,

xp系统下载文件没有出现下载对话框

xp系统下载文件没有出现下载对话框问题的具体描述:下载的文件通常是压缩文件,其他类型的文件小编没去尝试.因为这是一个朋友问我的问题,而下载完zip或RAR文件后,不止没下载对话框,让你选择保存的位置,下载完还会自动打开. 1 会问这个问题基本上有下载过文件了,这边先告诉你没弹窗对话框默认的保存位置 下载文件夹默认位置:C:WINDOWSsystem32configsystemprofileLocal SettingsTemporary Internet Files 2 更改配置 随便打开一个文件

link环境下使用codefirst技术制作《网盘软件》,下载器如何显示下载任务?

问题描述 link环境下使用codefirst技术制作<网盘软件>,下载器如何显示下载任务? link环境下使用codefirst技术制作<网盘软件>,下载器如何显示下载任务? 解决方案 参考:http://download.csdn.net/download/jhfant/4704284

用j-link下载器往k60下载总是不可以

问题描述 用j-link下载器往k60下载总是不可以 用j-link下载器往k60下载总是不可以,显示求大神,帮忙! 解决方案 硬件没练好! 驱动装好了吗

java io-java流中read(byte[] b)和read(byte[] b,int off,int len)有什么区别

问题描述 java流中read(byte[] b)和read(byte[] b,int off,int len)有什么区别 InputStream in = new FileInputStream(sourcePath); byte[] b = new byte[1024]; while (in.read(b,0,1023)!=-1) { System.out.println(new String(b)); }; 和 while (in.read(b)!=-1) { System.out.pri

库-nexus不能下载jar包,已经下载来索引了

问题描述 nexus不能下载jar包,已经下载来索引了 我nexus的配置,可以下载库的索引, 但是不能下载jar,通过nexus手动下载,请求的是本机地址 用maven也不能下载,怎么回事啊 解决方案 看看是不是被墙了造成的.

【技术贴】visual stdio 2005下载地址,vs2005下载地址 vs2005正版破解 v

[技术贴]visual stdio 2005中文版下载地址,vs2005下载地址 vs2005正版破解 vs2005注册码页面地址:http://soft.pdsu.edu.cn/list.asp?id=1215下地地址:http://soft.pdsu.edu.cn/download.asp?id=1215&downid=1 [Visual.Studio..net.2005.简体中文版]正式版key:KYTYH-TQKW6-VWPBQ-DKC8F-HWC4JVisual Studio 2005