【问题标题】:Issue in FileUpload - Null Value for Multipart File when deploy on remote host server but it works fine on localhost serverFileUpload 中的问题 - 在远程主机服务器上部署时多部分文件的空值,但在 localhost 服务器上工作正常
【发布时间】:2025-11-29 05:05:01
【问题描述】:

我有一个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。我不明白在远程主机上部署它有什么问题?

【问题讨论】:

    标签: java spring file-upload multipart


    【解决方案1】:

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

    【讨论】:

    • 感谢您的解决方案,我已经尝试过了,但仍然无法正常工作。我还在等待一些解决方案。
    【解决方案2】:

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

    【讨论】: