1,文件上传
1)struts.xml配置
<action name="addStockEx" class="action.stock.AddStockAction">
<param name="savePath">/images/upload</param> <!--这里说明保存的目录-->
<param name="allowTypes">image/bmp,image/png,image/gif,image/jpg,image/jpeg</param> <!--允许上传的文件类型-->
<result name="SUCC">/jsp/success.jsp</result> <!--返回成功-->
<result name="input">/jsp/upload.jsp</result> <!--上传错误返回页面-->
</action>
2)Action类
public class UploadFile
{
private String allowTypes;
private String savePath;
private File upload;
private String uploadContentType;
private String uploadFileName;//注意这里是***FileName,其中***是File的变量名
public String execute() throws Exception
{
boolean b = filterType(getAllowTypes().split("\\,"));
if(!b)
{
setTip("添加失败!");
setError("不支持此类型的文件,请传入.bmp .png .gif .jpg .jpeg格式的文件!");
return "input";
}
//file upload
FileOutputStream fos = new FileOutputStream(getSavePath()+"\\"+getUploadFileName());
FileInputStream fis = new FileInputStream(getUpload());
byte[] buf = new byte[1024];
int len = 0;
while ((len=fis.read(buf))>0)
{
fos.write(buf,0,len);
}
}
//判断上传文件类型是否支持
public boolean filterType(String[] types)
{
boolean b = false;
String fileType = getUploadContentType();
for(String type : types)
{
if(type.equals(fileType))
{
b = true;
}
}
return b;
}
//.....这里省略get set方法
}
3),jsp页面
<form name="theForm" method="post" enctype="MULTIPART/FORM-DATA">
<input type="file"name="upload">
</form>
2,文件下载
1)struts.xml配置
<action name="download" class="action.FileDownLoadAction">
<param name="inputPath">/images/button_18.gif</param><!--下载的文件-->
<result name="SUCC" 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
分享到:
相关推荐
在Struts2中,实现文件上传和下载是常见的需求,对于用户交互和数据交换至关重要。这篇博客文章可能详细讨论了如何在Struts2框架中实现这两个功能。 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,这是...
在这个"struts2上传和下载文件详细源码"中,我们可以深入理解Struts2如何处理文件上传和下载操作。 1. 文件上传: 在Struts2中,文件上传主要依赖于Apache的Commons FileUpload库。首先,需要在struts.xml配置文件...
Struts2是一个强大的Java web框架,它为开发者提供了一种优雅的方式来组织和构建应用程序,同时支持文件上传和下载功能。在Struts2中,文件上传和下载是通过Action类、拦截器以及配置文件来实现的。以下是关于Struts...
在Struts2中,文件上传和下载是通过Action类进行配置和处理的,让我们一起深入了解一下这个过程。 首先,我们要理解上传的流程。在用户端,通常通过HTML表单来选择要上传的文件,表单的`enctype`属性必须设置为`...
在Struts2中,文件上传和下载是常见的功能需求,特别是在处理用户交互和数据交换时。这篇博客文章提供的"struts2文件上传下载源代码"旨在帮助开发者理解和实现这些功能。 文件上传功能允许用户从他们的设备上传文件...
struts2的文件下载,和上传的Demo 可参考 https://blog.csdn.net/qq_31334119/article/details/80208888 https://blog.csdn.net/qq_31334119/article/details/80229329
Struts2是一个强大的MVC(模型-视图-控制器)框架,广泛应用于Java ...以上就是使用Struts2框架实现文件上传下载的基本步骤和关键知识点。在实际开发中,可以根据项目需求进行调整和优化,确保功能的稳定性和安全性。
在Struts2中,文件上传和下载是常见的功能需求,对于用户交互和数据交换至关重要。以下是对这些知识点的详细阐述: 1. **文件上传**: 在Struts2中,文件上传主要依赖于`Commons FileUpload`库,它是一个Apache提供...
Struts2是一个流行的Java Web框架,它为开发者提供了...通过研究这个项目,你可以更深入地了解Struts2的文件操作,包括上传和下载的流程、错误处理以及与前端交互的细节。这对于任何Java Web开发者来说都是宝贵的经验。
在Struts2中,文件的上传和下载是常见的功能需求,特别是在处理用户表单提交、数据交换或者提供资源下载服务时。这篇博客文章将探讨如何在Struts2框架下实现文件的上传和下载操作。 首先,我们需要了解文件上传的...
在Struts2中,文件上传和下载是常见的功能需求,尤其对于处理用户提交的表单数据时,如上传图片、文档等。这个"struts2_上传下载"实例则涵盖了多种实现这些功能的方法。 首先,Struts2的文件上传依赖于Apache的...
1. 添加依赖:在项目中,你需要添加Struts2的核心库和文件上传插件。Struts2的FileUpload插件提供了处理文件上传的功能。确保`struts2-core`和`struts2-convention-plugin`以及`struts2-file-uploading-plugin`在你...
在这个特定的项目中,我们关注的是"struts2文件上传下载"的功能,这涉及到用户通过Web界面上传文件到服务器,以及从服务器下载文件到用户的设备。 文件上传是Web应用中的常见需求,例如用户可能需要提交图片、文档...
在Struts2中,文件上传和下载是常见的功能需求,主要用于处理用户通过表单提交的文件,或者允许用户从服务器下载文件。这些功能极大地增强了Web应用的交互性和实用性。 在Struts2中实现文件上传,主要涉及到以下几...
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括文件上传和下载。在Struts2中处理文件上传和下载是常见的需求,对于构建交互式的Web应用来说至关重要。以下将详细介绍Struts2中如何实现这两个...
struts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileuploadstruts2 文件上传 struts2上传标签file fileupload
在基于Struts2的文件上传下载功能中,它提供了处理用户上传文件和提供文件下载的服务。这个完整的源代码是实现这些功能的一个实例,经过测试确保了其正确性和可用性。 首先,我们要理解Struts2中的Action类。Action...
struts2上传和下载的例子,直接用Eclipse导入即可。。