0

我的模块中有一个文件上传,true即使没有选择文件,如果总是给我。

下面是我的代码:

System.out.println("File Request : "+ServletFileUpload.isMultipartContent(request));
        // Check that we have a file upload request
        if(ServletFileUpload.isMultipartContent(request)) {
            FilesInRequest.SaveFiles(request, request.getRealPath(""));
        }

有什么问题?

请帮我找到并解决这个问题。

最好的祝福

4

1 回答 1

1

这是因为ServletFileUpload.isMultipartContent(request)仅检查请求内容类型,如果它以 multipart 开头,则ServletFileUpload.isMultipartContent(request)返回 true。

我过去使用的解决方案之一是检查请求是否属于类型MultipartHttpServletRequest并获取fileMap文件是否存在。

Map<String, MultipartFile> fileMap = new HashMap<String, MultipartFile>();
if (request instanceof MultipartHttpServletRequest) {
    MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
    fileMap = multiRequest.getFileMap();
}
if(fileMap.size() > 0 ) {
}

我不知道这是多么理想。

于 2013-02-27T13:01:10.550 回答