当前位置:  开发笔记 > 后端 > 正文

保留视图之间上载的文件

如何解决《保留视图之间上载的文件》经验,为你挑选了1个好方法。

我在Web应用程序中使用Spring MVC.我有一个视图,我允许用户上传文件,我想在后续视图之间保留此文件,因此在控制器操作中,我将其添加到我的下一个视图的模型中:

@RequestMapping("/loadFile")
    public String loadFile(
            Model model, 
            @RequestParam(required = true) CommonsMultipartFile uploadedFile,
HttpServletRequest request, HttpSession session) 
{
//some process
model.addAttribute("file", uploadedFile);
}

所以我的下一个视图应该有"可访问"文件.我试图复制文件上传视图的形式,然后将此文件值分配给文件输入,如下所示:

但这会分配一个org.springframework.web.multipart.commons.CommonsMultipartFile@57836c9d或类似的值,但它不起作用.

如何在视图之间传播此文件?



1> Sotirios Del..:

在Spring控制器中,您可以访问HttpSession.此对象用于在用户请求之间存储信息.您可以使用getAttribute(String)setAttribute(String, Object)方法执行此操作.

如果您希望上传的文件可以通过CommonsMultipartFile界面跨多个请求使用,则可以将该对象存储在会话中.例如:

HttpSession session = ... // get the session, you have it in your handler method
CommonsMultipartFile uploadedFile = ...; // same as above
session.setAttribute("UPLOADED_FILE", uploadedFile); 

现在只要你的会话有效,即.没有超时或失效,任何Controller或servlet都可以访问此对象

CommonsMultipartFile uploadedFile = session.getAttribute("UPLOADED_FILE");

Spring有一个注释@SessionAttributes,你可以在这里看一个例子,但我不喜欢它.

您可能对HttpSessionListener用于管理会话中的属性的界面感兴趣.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有