使用JQuery文件上传,Spring MVC和Spring Security时无法上传文件。

时间:2015-08-16 15:07:19

标签: jquery spring spring-mvc spring-security jquery-file-upload

我正在实施一个简单的图片上传网站。正在使用的框架是 jQuery file upload Spring MVC Spring Security

我已经为文件上传实现了表单和控制器,但在尝试读取文件时,文件似乎不可用。 我已经在安全_csrf上挣扎了一段时间,但我已经弄明白了。 现在,当我尝试读取文件时,到达控制器时无法读取文件。 这是源代码 https://gist.github.com/AdelinGhanaem/f67b311cda7aa9efe83c

1 个答案:

答案 0 :(得分:0)

经过大量的调试和检查Spring Security / MVC架构,这就是我所提出的:

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public ResponseEntity<UploadPictureResult> pictureUpload(FirewalledRequest initialRequest) {
     DefaultMultipartHttpServletRequest request = (DefaultMultipartHttpServletRequest) initialRequest.getRequest();

    try {
        MultipartFile multipartFile  = request.getFile("files[]");
        List<MultipartFile> multipartFileList = request.getFiles("files[]");

        Iterator<String> iterator = request.getFileNames();

        while (iterator.hasNext()) {
            MultipartFile file = request.getFile(iterator.next());
            service.save(toImage(file));
        }
    } catch (Exception e) {
        return new ResponseEntity<UploadPictureResult>(new UploadPictureResult(),
                HttpStatus.INTERNAL_SERVER_ERROR);
    }

    return new ResponseEntity<UploadPictureResult>(new UploadPictureResult(), HttpStatus.OK);
}

注意FirewallRequest !!!