PrimeFaces fileUpload在IE< = 9上不起作用

时间:2013-12-09 18:53:34

标签: java jsf file-upload primefaces jquery-file-upload

仅在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且内容类型不存在 - 为什么?):

my page request

但是在PrimeFaces页面上有(相同的浏览器 - IE8 / 9):

primefaces request

我还尝试将enctype设置为multipart/form-data和(就像在PrimeFaces演示页面上一样)application/x-www-form-urlencoded(默认情况下)

我该怎么做才能让它发挥作用?

2 个答案:

答案 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>

现在可行。