曾经见过有人给出的最蠢的一个做法,是在ActionForm里放了20个Formfile 类型的变量。
其实只需要下面一段代码即可。
String dirPath = getServlet().getServletContext().getRealPath("/")
+ "/upload";
Hashtable fileh = actionForm.getMultipartRequestHandler().
getFileElements();
for (Enumeration e = fileh.keys(); e.hasMoreElements(); ) {
String key = (String) e.nextElement();
try {
FormFile formfile = (FormFile) fileh.get(key);
String filename = formfile.getFileName().trim(); //文件名
if (!"".equals(filename)) {
//不同的浏览器传上的文件名可能有区别,有的是全路径的
//在这里保存文件
InputStream ins = formfile.getInputStream();
OutputStream os = new FileOutputStream(dirPath +
File.separatorChar
+ filename);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
}
} catch (Exception ex) {
logger.debug("出错了", ex);
}
}
分享到:
相关推荐
在Struts2的配置文件(struts.xml)中,我们需要配置一个Action来接收并处理文件上传的请求。确保Action类继承了`org.apache.struts2.interceptor.FileUploadInterceptor`拦截器,该拦截器负责处理文件上传。 3. **...
总的来说,"struts实现任意多文件上传实例"是一个实用的示例,可以帮助开发者了解和掌握在Struts中进行多文件上传的完整流程。通过学习这个实例,你可以更深入地理解Struts框架和文件上传的处理方式。
在Struts2中实现多文件上传是一项常见的功能,尤其在处理用户需要一次性提交多个文件的场景下。本篇文章将详细探讨如何在Struts2中实现多文件上传,并介绍相关的知识点。 首先,我们需要了解Struts2的文件上传机制...
本篇文章将详细介绍如何在Struts中实现不限数量的多文件上传。 首先,我们需要理解Struts的文件上传机制。Struts使用`Commons FileUpload`库来处理文件上传。`Commons FileUpload`是一个独立于Servlet API的组件,...
1. 提出了基于Javascript和Struts不定数量文件上传的设计思想,解决了用户需求的不确定性问题和服务器端的内存浪费问题。 2. 实现了客户端的动态输入界面,提高了客户端的交互性。 3. 使用Struts框架中的...
通过以上步骤,你就成功地在Struts2中整合了SWFUpload,实现了多文件上传功能。这个DEMO可以帮助初学者理解这种集成方式,同时也可以作为一个基础模板,根据实际需求进行扩展和优化。记住,实际开发中还需要考虑错误...
在本文中,我们将深入探讨如何在Struts2框架下实现三种不同类型的文件上传:单个文件上传、固定数量文件上传以及不固定数量文件上传。 首先,为了实现文件上传,我们需要以下准备: 1. 获取Struts2.3.6的库文件,...
在"Struts1 + iBatis + MySQL做的上传下载文件"项目中,开发者使用了Struts1来处理用户的文件上传和下载请求,iBatis作为数据访问层,与MySQL数据库进行交互存储文件的相关信息。以下是这个项目涉及的一些关键知识点...
Struts2中的文件上传功能主要由`<s:file>`标签和`org.apache.struts2.interceptor.FileUploadInterceptor`实现。当开发者需要处理用户上传的文件时,通常会遇到对上传文件大小的限制问题。这些限制不仅有助于提高...
要支持多文件上传,表单中应有多个`<input type="file">`元素,并在ActionForm中添加相应数量的`FormFile`实例。在服务器端,遍历这些`FormFile`对象,对每个文件进行处理。 7. **文件保存** 通常,上传的文件会...
为了实现文件上传,我们需要在ActionForm中使用`File`和`FileUpload`接口的实现类,比如`org.apache.struts.upload.FormFile`。同时,需要在HTML表单中使用`enctype="multipart/form-data"`属性来指定编码类型,以...
在Struts2中,文件上传和下载是常见的需求,对于开发者来说,实现这些功能并不复杂。以下将详细介绍如何在Struts2中实现文件上传与下载。 **一、Struts2文件上传** 1. **Struts2的文件上传标签** 文件上传主要...
- 可以与Spring MVC、Struts等框架集成,简化文件上传的处理逻辑。 总的来说,Apache的FileUpload组件为Java Web应用提供了一个强大且易于使用的文件上传解决方案。开发者可以根据需求进行配置和扩展,以满足不同...
这种技术在现代Web应用中非常常见,它提升了用户体验,允许用户在不刷新整个页面的情况下上传文件,特别是对于大文件或需要处理的文件数量较多时,异步上传的优势更为明显。 首先,我们要了解AjaxFileUpload是...
在这个示例中,我们将深入探讨如何在Struts2框架下实现文件上传进度条的功能。 首先,Struts2框架提供了一种处理文件上传的机制,基于Apache的Commons FileUpload库。为了实现上传进度条,我们需要理解这两个关键...
在多文件上传中,Servlet接收上传的文件,将其保存在服务器上,并返回确认信息。 四、具体实现步骤 1. 创建HTML表单:设置`enctype="multipart/form-data"`以支持文件上传,使用`<input type="file" multiple>`允许...
5. **文件上传Form Bean**: 当需要处理文件上传时,Struts提供了`org.apache.struts.upload.FormFile`接口。用户可以选择文件并将其作为Form Bean的一部分提交。这需要在struts-config.xml中配置特殊的表单类型,并...
在文件上传过程中可能会出现各种异常,如文件过大、格式不正确等,需要捕获并返回相应的错误信息,以便用户了解问题所在。 9. **响应结果**: 最后,Action类执行完后,返回一个结果,告诉视图层如何展示。如果是...
5. **配置Struts2**:在struts.xml中,你需要为SwfUpload的Action创建一个配置,指定接收文件的Action方法,可能还需要配置拦截器栈以处理文件上传。 6. **安全性考虑**:在实际应用中,必须考虑到文件上传的安全性...