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

时间:2015-01-08 12:47:52

标签: java spring jsp multipartform-data

我的JSP表单上有一个文件选择器,如下所示:

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

当我选择上传文件时,它会通过@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>

2 个答案:

答案 0 :(得分:0)

你有一个助手类或一个豆?如果不是,我认为你必须创建它...然后只需添加一个新的MultipartFile属性与它的getter / setter:

MultipartFile document;

// getters & setters!!

然后在视图中:

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

答案 1 :(得分:0)

在方法中包含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());