仅在IE< = 9中出现问题。其他任何地方的文件上传工作都很完美。
我正在使用PrimeFaces版本:3.4.2。 升级到4.0不会改变任何内容。
我复制了以下代码:PrimeFaces FileUpload demo
<h:form>
<p:fileUpload fileUploadListener="#{fileUploadBean.listener}"
mode="advanced" update="messages" auto="true" sizeLimit="100000"
allowTypes="/(\.|\/)(gif|jpe?g|png)$/" />
<p:growl id="messages" showDetail="true" />
</h:form>
我甚至定义了:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
在我的页面上它不起作用,但在FileUpload demo页面上,它令人惊讶地工作。
我注意到IE上的这种奇怪行为&lt; = 9(内容长度为0且内容类型不存在 - 为什么?):
但是在PrimeFaces页面上有(相同的浏览器 - IE8 / 9):
我还尝试将enctype
设置为multipart/form-data
和(就像在PrimeFaces演示页面上一样)application/x-www-form-urlencoded
(默认情况下)
我该怎么做才能让它发挥作用?
答案 0 :(得分:0)
如果你还没有尝试使用primefaces.UPLOADER参数,你可以试试。我不得不使用
<context-param>
<param-name>primefaces.UPLOADER</param-name>
<param-value>commons</param-value>
</context-param>
使其适用于IE8。也许这对你有帮助
答案 1 :(得分:0)
我刚解决了。
它不起作用的原因是在布局中 - XHTML主页包含了jquery和jquery.fileupload ...但为什么IE&lt; = 9没有处理我不知道(没有错误/控制台中的警告。)
我刚将其修改为以下内容:
<o:conditionalComment if="gt IE 9">
<script src="#{request.contextPath}/js/jquery.min.js"></script>
<script src="#{request.contextPath}/js/jquery-ui.min.js"></script>
<script src="#{request.contextPath}/js/jquery.fileupload.js"></script>
</o:conditionalComment>
现在可行。