文件上传到Web应用程序

时间:2013-10-26 07:40:18

标签: spring-mvc file-upload upload

我正在开发一个允许用户上传和查看PDF文件的网络应用。

我的问题是我应该在哪里存储用户上传的文件?他们说,将它存储在数据库中会花费很多。那么如果不在数据库中我应该存储用户上传的文件?你能给我一个特定的或样本的路径,我应该存储文件吗?

顺便说一句,如果有助于澄清我的问题,我会使用Spring MVC

这也是我到目前为止对控制器所做的事情:

@RequestMapping( value = "*/uploadPDF", method = RequestMethod.POST )
    public String uploadPDF( @RequestParam( defaultValue = "" )
    String message, @RequestParam( defaultValue = "" )
    String messageType, HttpServletRequest request, ModelMap model, FileBean fileBean, BindingResult result )
    {
        model.addAttribute( "message", message );
        model.addAttribute( "messageType", messageType );
        HttpSession session = request.getSession();
        String returnVal = Credentials.checkSession( session );

        if( returnVal != null )
        {
            return returnVal;
        }

        if( result.hasErrors() )
        {
            for( ObjectError error : result.getAllErrors() )
            {
                System.err.println( "Error: " + error.getCode() + " - " + error.getDefaultMessage() );
            }
            return "redirect:*/module?error";
        }
        return "admin/module";
    }

我还没有决定如何处理该文件。请指导我。

1 个答案:

答案 0 :(得分:0)

在存储文件方面,你有很多选择......这实际上取决于你的用例。

  • 您可以将文件作为lob存储在数据库中。通常,它会因为更多开销而变慢,但您可以从任何具有数据库连接的应用程序访问它。

  • 您可以将文件存储在应用程序服务器FileSystem上。如果您希望它非常有效,这可能是最好的解决方案。

  • 您可以将文件放在内容存储库(Ex Apache Jackrabbit)中。如果您想在多个应用程序之间共享文件,这可能是一个不错的选择。

  • ...

您有什么要求?机密性,性能,文件可用性......