javax.servlet.ServletException 请求不包含 multipart/form-data 或 multipart/mixed 流

javax.servlet.ServletException the request doesn't contain a multipart/form-data or multipart/mixed stream

我有下面的表格,它通过 <h:inputFile><f:ajax> 上传文件。

<h:form enctype="multipart/form-data">
    <h:inputFile id="file" value="#{bean.file}" />
    <h:commandButton value="Upload" action="#{bean.upload}">
        <f:ajax execute="file" render="file" />
    </h:commandButton>
</h:form>

当我提交它时,我收到一个 JavaScript 警告,其中包含以下错误信息:

serverError: class javax.servlet.ServletException the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded;charset=UTF-8

这个问题有解决办法吗?我正在使用 Mojarra 2.2.11。

我转载了。这是 Mojarra 中的一个错误,作为 issue 3129. Your problem is already reported as issue 3765 修复的副作用在 2.2.9 中引入。基本上:自 Mojarra 2.2.9 以来,使用 ajax 上传文件被破坏,并且没有解决方法(至少在没有破解代码的情况下)。

目前,您需要降级到 Mojarra 2.2.8,直到他们发布带有修复程序的版本。