前天在做分类图标管理的时候,需要同时上传两个图标。但在处理的时候老报错,在google上找到有用的信息:
File upload support has been rebuilt to allow for multiple files with the same HTTP parameter name. Besides "cos" and "pell" support, "jakarta" support has been added, utilizing the Commons-FileUpload library. Only "jakarta" supports multiple files with the same HTTP parameter name. In future versions "jakarta" may become the default upload library, replacing "pell",作者还说将webwork.properties的webwork.multipart.parser设为com.opensymphony.webwork.dispatcher.multipart.JakartaMultiPartRequest就可以了。
再看一下我们项目的webwork.properties,真是晕死,人家webwork已经调jakata设为默认上传组件了,我们的webwork.properties竟然还硬要设为pell,这不是蓄意谋杀么?
当时图个爽快,按照这样仁兄的设置,果然成功了。今天早上回来看了一下webwork的代码,发现有点不对路。Webwork里的com.opensymphony.webwork.dispatcher.multipart.MultiPartRequestWrapper里面有几行代码,是判断使用那个上传组件的。以下是摘抄:
if (request instanceof MultiPartRequest) {
multi = (MultiPartRequest) request;
} else {
String parser = Configuration.getString(WebWorkConstants.WEBWORK_MULTIPART_PARSER);
// If it's not set, use Jakarta
if (parser.equals("")) {
log.warn("Property webwork.multipart.parser not set." +
" Using com.opensymphony.webwork.dispatcher.multipart.JakartaMultiPartRequest");
parser = "com.opensymphony.webwork.dispatcher.multipart.JakartaMultiPartRequest";
}
// legacy support for old style property values
else if (parser.equals("pell")) {
parser = "com.opensymphony.webwork.dispatcher.multipart.PellMultiPartRequest";
} else if (parser.equals("cos")) {
parser = "com.opensymphony.webwork.dispatcher.multipart.CosMultiPartRequest";
} else if (parser.equals("jakarta")) {
parser = "com.opensymphony.webwork.dispatcher.multipart.JakartaMultiPartRequest";
}
为什么将webwork.multipart.parser设为com.opensymphony.webwork.dispatcher.multipart.JakartaMultiPartRequest也是可以的?理论上应该设为jakata才对,除非在if子句中已经执行了,跳过了下面的else子句。
分享到:
相关推荐
在Web开发中,多文件上传是一项常见的功能,它允许用户一次性上传多个文件,极大地提高了用户体验。WebWork是一个基于Java的轻量级MVC框架,它提供了处理多文件上传的能力。本篇文章将深入探讨如何在WebWork框架下...
在这个“WebWork 文件上传 多个文件上传 范例”中,我们将深入探讨如何使用WebWork实现多文件上传的功能。 首先,了解文件上传的基本原理是必要的。在HTTP协议中,文件上传通常通过POST请求实现,其中包含了...
总的来说,这个例子展示了如何在WebWork框架下实现一个简单的多文件上传功能。用户选择文件后,这些文件将通过HTTP请求发送到服务器,服务器端的`FileUploadAction`接收并处理这些文件。注意,实际应用中可能还需要...
在本教程中,我们将探讨如何利用WebWork实现文件上传功能,特别是针对Excel文件的处理。 首先,理解WebWork的MVC模式至关重要。在WebWork框架中,控制器负责接收用户请求,调用业务逻辑,并将结果传递给视图进行...
WebWork提供了丰富的特性,如类型转换、验证、国际化、文件上传和下载等,这些功能使得开发者可以更高效地构建高质量的应用程序。 #### 二、文件上传基础知识 文件上传是Web应用程序中的常见需求之一。在WebWork中...
以下是一个简单的WebWork文件上传示例: ```java import org.apache.struts.upload.FormFile; ... public class UploadAction extends ActionSupport { private FormFile file; public String execute() { if ...
在Web开发中,文件上传和下载是常见的功能需求,本Demo展示了如何在WebWork框架下实现这两个操作。 首先,我们要理解上传和下载的基本原理。文件上传是指用户通过Web表单选择本地文件,然后将其发送到服务器的过程...
在实际项目中,你可能需要考虑更多细节,比如文件大小限制、错误处理、文件的持久化存储策略、以及安全性问题(如防止恶意文件上传)。总的来说,理解这两个框架的协同工作原理对于开发高效、可靠的Web应用至关重要...
在提供的文件列表中,我们看到有多个以".mht"结尾的文件,这是MHT(MHTML)文件,是一种单个文件中存储网页内容的格式,可能包含了关于WebWork文件上传和下载的讨论或者示例代码。例如,"webwork 文件下载 - New - ...
本文将深入探讨WebWork2.2.7中的简单文件上传功能,这在现代Web应用中是必不可少的,允许用户上传图片、文档等各种类型的数据。 在Web开发中,文件上传通常涉及到表单提交和服务器端的处理。WebWork2.2.7支持使用...
"fileupload+dwr2+webwork2实现带进度条上传文件"这个主题涉及到三个关键技术和组件:FileUpload、Direct Web Remoting (DWR) 和 WebWork2,它们协同工作以提供一个带有进度条的高效、用户友好的文件上传体验。...
`MultiPartRequest`类是WebWork处理文件上传的核心,它包含了解析多部分请求的能力。`isMultiPart()`方法通过检查`Content-Type`头来确定请求是否包含文件。一旦确定,WebWork就可以开始解析请求,获取上传文件的...
webwork上传文件pdf文件说明文档
总之,使用WebWork上传Excel并导入MySQL数据库是一项常见的任务,涉及到前端交互、文件上传处理、Excel解析和数据库操作等多个技术领域。理解并熟练掌握这些知识点对于开发企业级应用至关重要。在实践中,不断优化和...
虽然这是一个简化的示例,但在实际项目中,可能还需要处理更多细节,例如异常处理、多文件上传、图片预览等。理解WebWork的工作机制和文件上传的基本流程,对于开发复杂的Web应用程序至关重要。
SWFUpload是一个强大的JavaScript库,专门用于实现多文件上传功能。在Web开发中,尤其是在处理大量用户上传文件的场景下,SWFUpload以其高效的性能和友好的用户体验而受到青睐。这个"SWFUpload,多文件上传选择,jsp...
2. **解压文件**:解压后的目录包含必要的文件和目录,例如`webwork-2.x.jar`(主库文件)、`webwork-example.war`(示例应用)、`docs`(文档)、`lib`(依赖库)等。 3. **部署至Web容器**:将下载的WebWork部署到...
在这个教程中,我们将探讨如何在WebWork 2.2.7的Action中利用Apache Commons FileUpload库来实现文件上传功能,并处理文件流。Apache Commons FileUpload是一个强大的库,专门用于处理HTTP请求中的多部分/表单数据,...
**一、WebWork文件上传** 1. **前端页面**:在HTML页面中,我们需要一个`<input type="file">`标签让用户选择要上传的文件。例如: ```html ``` 注意`enctype="multipart/form-data"`,这是上传文件时...