0

我有一个jsp文件UploadCoupon.jsp如下图片上传

<form:form commandName="uploadcoupon" enctype="multipart/form-data" method="POST">
    <form:input type="file" path="couponImage" class="file_1 required"/><br/>
    <form:errors path="couponImage" cssClass="error" style="color:red" /><br/>
    <input id="uploadCouponButton" type="submit" value="" class="form-submit" />
</form:form> 

Bean 类Coupon.java如下所示

public class Coupon {

    MultipartFile couponImage;

    public MultipartFile getCouponImage() {
        return couponImage;
    }

    public void setCouponImage(MultipartFile couponImage) {
        this.couponImage = couponImage;
    }

}

Dispatcher servlet 具有以下代码

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

控制器UploadCoupon.java如下

public class UploadCoupon extends SimpleFormController
{

    public UploadCoupon()
    {
        setCommandClass(Coupon.class);
        setCommandName("uploadcoupon");
    }

    @Override
    protected ModelAndView onSubmit(HttpServletRequest request,
                                    HttpServletResponse response,
                                    Object command,
                                    BindException errors) throws Exception {

        try {

            Coupon coupon = (Coupon)command;

            MultipartFile multipartFile = coupon.getCouponImage();

            // image type of file processing...

        } catch (Exception e) {
             System.out.println("Exception -"+e.getMessage());
        }

        mv = new ModelAndView(new RedirectView("UploadCoupon.htm");
        return mv;

    }

}

此代码在本地主机上的 Glassfish 服务器上部署时工作正常,但是当我在 Glassfish 服务器上的远程主机上部署它时,multipartFile 对象为 null 并且发生 NullPointerException。我不明白在远程主机上部署它有什么问题?

4

2 回答 2

0

我明白问题出在哪里。在从中获取图像之前不要使用httpRequest对象。在我的情况下,我在调用 spring 控制器检查 Http Session 之前在过滤器中使用了 httpRequest对象。现在我已经删除了这个过滤器以防文件上传并且我的代码运行良好。

于 2013-06-24T12:32:30.547 回答
0

看起来更像是配置问题。我在tomcat上也有这个,问题是最大帖子大小限制。您应该正确配置/的maxPostSize属性。值 0 表示无限大小。http-servicehttp-listener

于 2013-06-03T12:59:36.907 回答