2014-10-13 3 views
0

У меня есть параметр fileLimit, установленный на 1. Я хочу, чтобы, когда пользователь выбирал первый файл, кнопка выбора отключается.Отключить кнопку «Выбрать» fileUpload в файлах

+0

Я хочу, чтобы пользователь не пытался загрузить более 1 файла. – Roland

+0

Да, есть. Когда пользователь попытается загрузить второй файл, отобразится сообщение об ошибке. Но я не хочу, чтобы пользователь мог загрузить второй файл. – Roland

ответ

1

Я разрешил помещать отключенный атрибут в fileUpload, который был загружен с булевой переменной в моем компоненте. Когда файл заканчивается для загрузки, переменная меняет его значения на true и я обновляю компонент fileUpload, затем компонент отключается. Спасибо, ребята, за помощью.

0

Попробуйте это.

XHTML

<p:fileUpload fileUploadListener="#{fileUploadView.handleFileUpload}" 
       mode="advanced" 
       dragDropSupport="false" 
       update="messages,@this" 
       sizeLimit="100000" 
       fileLimit="1" 
       allowTypes="/(\.|\/)(gif|jpe?g|png)$/" 
       disabled="#{fileUploadView.fileUploadCount >= 1}"/> 

<p:growl id="messages" showDetail="true" /> 

managedbean

@ManagedBean 
public class FileUploadView { 

    private int fileUploadCount; 

    public int getFileUploadCount() { 
     return fileUploadCount; 
    } 

    public void setFileUploadCount(int fileUploadCount) { 
     this.fileUploadCount = fileUploadCount; 
    } 

    public void handleFileUpload(FileUploadEvent event) { 
     FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded."); 
     FacesContext.getCurrentInstance().addMessage(null, msg); 

     fileUploadCount = fileUploadCount + 1; 
    } 
} 

Этот предложенный легко изменить ограничение файла. Если вы хотите изменить fileLimit на 2, вы просто меняете fileLimit="2" и disabled="#{fileUploadView.fileUploadCount >= 2}" без изменения managedbean.