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