Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf Primefaces多文件选择在IE11浏览器中不起作用_Jsf_Jsf 2_Primefaces_Weblogic12c_Mojarra - Fatal编程技术网

Jsf Primefaces多文件选择在IE11浏览器中不起作用

Jsf Primefaces多文件选择在IE11浏览器中不起作用,jsf,jsf-2,primefaces,weblogic12c,mojarra,Jsf,Jsf 2,Primefaces,Weblogic12c,Mojarra,我试图在IE11浏览器中使用primefaces5.2实现多文件上传,但它不允许我一次选择多个文件 同样的东西在chrome浏览器中也能完美工作 配置的jar: javax.faces.jar(JSF2.1.9)、Primefaces5.2.jar、Weblogic 12c Web.xml: <web-app> <servlet> <servlet-name>Faces Servlet</servlet-name> <

我试图在IE11浏览器中使用primefaces5.2实现多文件上传,但它不允许我一次选择多个文件

同样的东西在chrome浏览器中也能完美工作

配置的jar:

javax.faces.jar(JSF2.1.9)、Primefaces5.2.jar、Weblogic 12c

Web.xml:

<web-app>
  <servlet>
     <servlet-name>Faces Servlet</servlet-name>
     <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
     <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
     <servlet-name>Faces Servlet</servlet-name>
     <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>
  <context-param>
    <description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
    <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
    <param-value>client</param-value>
</context-param>
<context-param>
    <param-name>primefaces.UPLOADER</param-name>
    <param-value>auto</param-value>
</context-param>
 <filter>
    <filter-name>PrimeFaces FileUpload Filter</filter-name>
<filter-class> org.primefaces.webapp.filter.FileUploadFilter
</filter-class>
 </filter>
 <filter-mapping>
   <filter-name>PrimeFaces FileUpload Filter</filter-name>
   <servlet-name>Faces Servlet</servlet-name>
 </filter-mapping>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>

请删除value属性。在高级模式下,Primefaces为每个文件调用侦听器,该值不是必需的

  <p:fileUpload  mode="advanced" multiple="true" 
      fileUploadListener="#{fileUploadBean.fileUploadListener}">
  </p:fileUpload>

另外,确保SessionScoped是您的最佳范围。因为,大多数时候使用ViewScope更好。

在IE 11中,我的web应用程序处于兼容模式,我将web应用程序从兼容模式中删除,现在我可以选择多个文件。

您使用哪个浏览器?@ErkanErol我正在IE11浏览器上测试此代码。删除了value属性,但没有更改,我无法同时选择多个文件。它能在IE11上工作吗?你能把参数上传器从自动改为普通吗?我也尝试了这个选项,但仍然不起作用(上下文参数值是commons)。我一次只能选择一个文件(为了上传多个文件,我点击了几次文件选择按钮)。在这种情况下,我可以上传多个文件,但是我必须实现的一次选择多个文件是不起作用的。为了能够一次选择多个文件,必须在生成的html输出中设置“multiple”属性。但是我不明白为什么代码不起作用。
 @ManagedBean
 @SessionScoped
 public class FileUploadBean {
    UploadedFile file;

    public UploadedFile getFile() {
    return file;
     }

    public void setFile(UploadedFile file) {
     this.file = file;
     }

   public void fileUploadListener(FileUploadEvent e){
    // Get uploaded file from the FileUploadEvent
    this.file = e.getFile();
    // Print out the information of the file
    System.out.println("Uploaded File Name Is :: "+file.getFileName()     +" ::    Uploaded File Size :: "+file.getSize());
    }
  <p:fileUpload  mode="advanced" multiple="true" 
      fileUploadListener="#{fileUploadBean.fileUploadListener}">
  </p:fileUpload>
ArrayList<UploadedFile> files = new ArrayList<UploadedFile>();
files.add(e.getFile());