webwork的多文件上传

 

前天在做分类图标管理的时候,需要同时上传两个图标。但在处理的时候老报错,在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.propertieswebwork.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子句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值