2013-04-15 18 views
13

Używam przesyłania plików jquery w celu przesłania plików na serwer. Chcę ograniczyć użytkownika do przesłania maksymalnie 6 plików. Przeszukuję upload pliku jQuery wiki, ale nie znalazłem dla niego parametru. Czy jest jakiś sposób, że można ograniczyć użytkownikowi na liczbę uplaodsPrzesyłanie plików jquery ograniczających liczbę plików

+0

z której wtyczki jquery korzystasz? zazwyczaj wewnątrz funkcji wywołania zwrotnego będzie przechowywać te pliki w jakiejś tablicy json, której rozmiar można wstawić if() klauzula –

+0

Dlaczego nie działa wersja: http://stackoverflow.com/questions/21347805/jquery-multiple-file- upload-limit-liczba-plików-nie działa –

Odpowiedz

29

Korzystanie maxNumberOfFiles tu documentation:

$('#fileuploadbasic').fileupload({ 

maxNumberOfFiles: 6 

}); 
+0

To nie działa w moim przypadku. Mogę wybrać więcej niż 6 plików, a także przesłać wszystkie wybrane pliki. – basZero

+0

Zauważyłem, że czasami przeglądarka buforuje plik .js. Spróbuj odświeżyć rzeczywistą stronę .js i sprawdź, czy zmiany zostaną wprowadzone. – BSUK

15

maxNumberOfFiles nie działa na mnie tak zrobiłem następujący

$('#fileuploadbasic').fileupload({ 
    change : function (e, data) { 
     if(data.files.length>=5){ 
      alert("Max 5 files are allowed") 
      return false; 
     } 
    }, 
    maxFileSize: 20000000, 
    acceptFileTypes: /(\.|\/)(jpe?g|png)$/i, 
}); 
+3

Niesamowite, dokładnie to, czego potrzebowałem. –

+3

To też nie działa dla mnie. –

+2

Nie mogę edytować odpowiedzi z jakiegoś powodu, ale jeśli zastąpisz procedurę "zmiany" przez "wyślij", to zadziała. To mi się udało, a "zmiana" też nie działa :) – NaturalBornCamper

0

Możesz ograniczyć przesyłanie plików przez plik "Uploadhandler.php". Zmień opcję "max_number_of_files". pracuje dla mnie. Ale sprawdza się tylko po przesłaniu pliku.

+0

To jest poprawne. Wiele ustawień jest dostępnych po stronie klienta (przez js) i po stronie serwera (przez PHP). Uznałem za przydatne duplikowanie obu, aby użytkownik otrzymał informację zwrotną od klienta przed przesłaniem pliku, ale na tym serwerze odbywa się również bezpieczniejszy poziom sprawdzania poprawności. – BSUK

0

Można spróbować:

$('#fileuploadbasic').fileupload({ 
    //..... 
    paramName: 'your_input_name', 
    add : function (e, data) { 
    if(data.paramName != undefined) data.submit(); 
    } 
}); 
0

Jeśli używasz "Krajee" umiszczanie plików, a następnie trzeba będzie użyć

$('#fileuploadbasic').fileinput({ 
    maxFileCount: 6 
}); 

Jeśli ustawione na 0, to znaczy wielkość dozwolone jest nieograniczona. Domyślnie 0.