使用 Spring 在视图中保留 `MultipartFile` 的问题

Problems to keep a `MultipartFile` in a View using Spring

我有一个文件 select 或在我的 JSP 表格上,如下所示:

<input type="file" name="file" id="file"/>

当我select上传文件时,它会通过@RequestParam:

向控制器发送一个MultipartFile

@RequestParam("file") MultipartFile file

但是我怎样才能将这个文件恢复到同一个视图?

我尝试将 model.addAttribute("file", file) 放在控制器上,但它不起作用。

此致,

已编辑。

我有以下 Bean:

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

你有帮手class还是bean?如果不是,我认为你必须创建它......然后只需添加一个新的 MultipartFile 属性,它是 getters/setters:

MultipartFile document;

// getters & setters!!

然后在视图中:

<form:input path ="document" type="file" name="Your file"/>

在方法中包含 HttpServletResponse 响应并将文件内容写入响应(正确定义 mime 类型。

public void processUpload(@RequestParam MultipartFile file,
                            HttpServletResponse resp) {
    resp.setContentType(yourTypeHere + "; charset=UTF-8");
    resp.setHeader("Content-Disposition", "attachment; filename=\"" 
    + theFileName + "\"");

    IOUtils.copy(new TheInputStreamFromTheFile(), resp.getOutputStream());