读书人

struts2下传和上载

发布时间: 2012-10-06 17:34:01 作者: rapoo

struts2上传和下载
1,文件上传

1)struts.xml配置

<action name="addStockEx" method="post" enctype="MULTIPART/FORM-DATA">

<input type="file"name="upload">

</form>

2,文件下载

1)struts.xml配置

<action name="download" type="stream">

<param name="contentType">/image/gif</param><!--下载文件的类型-->
<param name="inputName">targetFile</param><!--注意这里,在action类中肯定会有个getTargetFile()方法-->
<param name="contentDisposition">attachment;filename="hah.gif"</param> <!--下载文件的名称,注意这里需要定义attachment; 否则就会默认inline 表示浏览器会尝试打开-->
<param name="bufferSize">4096</param> <!--下载缓冲区大小-->
</result>
</action>

2)Action类

public class FileDownLoadAction
{
private String inputPath;


public InputStream getTargetFile() {
return ServletActionContext.getServletContext().getResourceAsStream(inputPath);
}

public void setInputPath(String inputPath) {
this.inputPath = inputPath;
}
public String execute()
{
return "SUCC";
}

public String getInputPath() {
return inputPath;
}


}

3)jsp页面

<a href="download.action">下载</a>



一些参数说明:

contentType

内容类型,和互联网MIME标准中的规定类型一致,例如text/plain代表纯文本,text/xml表示XML,image/gif代表GIF图片,image/jpeg代表JPG图片

inputName

下载文件的来源流,对应着action类中某个类型为Inputstream的属性名,例如取值为inputStream的属性需要编写getInputStream()方法

contentDisposition

文件下载的处理方式,包括内联(inline)和附件(attachment)两种方式,而附件方式会弹出文件保存对话框,否则浏览器会尝试直接显示文件。取值为:

attachment;filename="hah.gif",表示文件下载的时候保存的名字应为hah.gif。如果直接写filename="hah.gif",那么默认情况是代表inline,浏览器会尝试自动打开它,等价于这样的写法:inline; filename="hah.gif"

bufferSize

下载缓冲区的大小

。在这里面,contentType属性和contentDisposition分别对应着HTTP响应中的头Content-Type和Content-disposition头。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hy0231/archive/2008/12/19/3555957.aspx

读书人网 >软件架构设计

热点推荐