spring和struts 2.3集成应用程序中的文件上传问题

时间:2014-12-01 11:53:00

标签: spring file-upload struts2

我在Spring应用程序中遇到了多部分文件上传功能的问题。我在我的应用程序中的少数其他jsp文件中使用struts2.3标记。在我的春季应用程序中将struts从1.2迁移到2.3之前,上传functionlity工作正常。

我的上传jsp文件中的代码段:

<td nowrap="nowrap">
                <input type="file" name="file" class="formElement" size="40"/>&nbsp;
                <input name="actionAdd" type="button" class="button" value="Add File to Table" onclick="addFileToTable();"/>
                <div id="noFileSelected" style="display:none"><p><span class="error">No File selected.</span> </p></div>
            </td>

实现类中的代码块:

multiPartRequest = (MultipartHttpServletRequest) request;
MultipartFile multipartFile = multiPartRequest.getFile("file");
春天配置文件中的

代码

<bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    <property name="maxUploadSize" value="500000"/>
</bean>

multiPartRequest.getFile(“file”)返回null。

之前相同的代码块工作正常。

2 个答案:

答案 0 :(得分:0)

尝试直接从文件对象获取不要使用multipart请求来获取文件。

private List<File> file; // if you want to select multiple files
private String fileFileName;
private String fileContentType;

    for (File file : file){

        System.out.print("\nFile ["+i+"] ");
                      System.out.print("title:"+imgTitle);
                      System.out.print("; name:"         + fileFileName.get(i));
                      System.out.print("; contentType: " + fileContentType.get(i));
                      System.out.print("; length: "      + file.length());
    }

答案 1 :(得分:0)

我猜你有Struts2和Spring-plugin + Spring库(而不是Spring MVC,它是Struts2的替代品);那么为什么使用Spring上传文件,当Struts2更好,没有代码可以编写时呢?

JSP

<input type="file" name="file" class="formElement" size="40"/>

动作

private File file;
private String fileFileName;
private String fileContentType;

/* Getters and Setters */

确保你的堆栈中有FileUpload拦截器(如果你没有触及任何东西,你就拥有它),那就是它。全自动。

它还works perfectly with multiple files