2015-11-23 3 views
1

Я пытаюсь реализовать многопользовательскую загрузку файлов с использованием simplefaces5.2 в браузере IE11, но это не позволяет мне выбрать сразу несколько файлов.Префиксный выбор нескольких файлов не работает в браузере IE11

Тот же материал отлично работает в браузере Chrome.

Баночки Сконфигурирован:

javax.faces.jar (JSF2.1.9), Primefaces5.2.jar, Weblogic 12с

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> 

fileUpload.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml" 
xmlns:ui="http://java.sun.com/jsf/facelets" 
xmlns:h="http://java.sun.com/jsf/html" 
xmlns:f="http://java.sun.com/jsf/core" 
xmlns:p="http://primefaces.org/ui"> 
<h:head> 
</h:head> 
<h:body> 
    <h:form enctype="multipart/form-data" > 
      <p:fileUpload value="#{fileUploadBean.file}" mode="advanced" multiple="true" 
          fileUploadListener="#{fileUploadBean.fileUploadListener}"></p:fileUpload> 
    </h:form> 
    <h:body> 
</html> 

FileUploadBean.java

@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()); 
    } 
+0

какой браузер вы используете? –

+0

@ErkanErol Я тестирую этот код в браузере IE11. –

ответ

0

В IE 11 мое веб-приложение находится в режиме совместимости, я удалил веб-приложение из режима совместимости, и теперь я могу выбрать несколько файлов.

0

Пожалуйста, удалите значение атрибута. В предварительном режиме, Primefaces вызывает слушателя для каждого файла, и значение не требуется.

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

Вы должны использовать список вместо одного файла

ArrayList<UploadedFile> files = new ArrayList<UploadedFile>(); 

и в методе добавить файл в список

files.add(e.getFile()); 

Кроме того, убедитесь, что SessionScoped является лучшим для вас. Потому что, большую часть времени, используя ViewScoped, лучше.

+0

удалил атрибут value, но без изменений, я не могу выбрать сразу несколько файлов. Это работает на IE11? –

+0

Да, он работает на IE11. Я использую его в своих проектах. –

+0

Не могли бы вы изменить параметр UPLOADER от автоматического к общему? –