2012-09-06 11 views
20

Używam JQuery file upload demo do mojego następnego projektu z Codeigniter. Czy ktoś może mi powiedzieć jak mogę osiągnąć następujące:Ograniczanie typów plików w JQuery Przesyłanie pliku demo

  • Ograniczanie typów plików przesłać na .zip i .rar
  • Ograniczanie rozmiar pliku
  • Czyszczenie listy plików przesłanych (jQuery Prześlij plik plugin wyświetla listę już przesłanych plików)

Pomoc doceniona !!

+1

Upewnij się, że wszystkie te ograniczenia/sprawdzenia są również wykonywane po stronie serwera. –

Odpowiedz

-2

spróbuj poszukać na tej linii:

process: [ 
      /* 
       { 
        action: 'load', 
        fileTypes: /^image\/(gif|jpeg|png)$/, 
        maxFileSize: 20000000 // 20MB 
       }, 
       { 
        action: 'resize', 
        maxWidth: 1920, 
        maxHeight: 1200, 
        minWidth: 800, 
        minHeight: 600 
       }, 

w jquery.fileupload-fp.js

3

Według oficjalnej dokumentacji;

$('#file_upload').fileUploadUIX({ 
    maxFileSize: 5000000, // Maximum File Size in Bytes - 5 MB 
    minFileSize: 100000, // Minimum File Size in Bytes - 100 KB 
    acceptFileTypes: /(zip)|(rar)$/i // Allowed File Types 
}); 
4

W jquery.fileupload-ui.js edycji ta część:

$.widget('blueimp.fileupload', $.blueimp.fileupload, { 

    options: { 
     // The maximum allowed file size: 
     maxFileSize: 100000000, 
     // The minimum allowed file size: 
     minFileSize: undefined, 
     // The regular expression for allowed file types, matches 
     // against either file type or file name: 
     acceptFileTypes: /(zip)|(rar)$/i, 
     ---------------------------------------------------------------- 

Aby wyczyścić listę przesłanych plików - Zdjąć $ .getJSON połączenia z main.js jeśli nie musisz ta funkcjonalność.

62

Prawdopodobnie masz teraz mnóstwo rozwiązań, jednak chciałem użyć wtyczki BASIC do uploadera jquery, czyli bez żadnych innych skryptów .. z jakiegoś powodu opcje maxFileSize/fileTypes nie działały - ale to w większości nie wątpię w mój brak lektury dokumentacji!

W każdym razie dla mnie to było tak szybkie, jak w następujący sposób:

add: function (e, data) { 
     var goUpload = true; 
     var uploadFile = data.files[0]; 
     if (!(/\.(gif|jpg|jpeg|tiff|png)$/i).test(uploadFile.name)) { 
      common.notifyError('You must select an image file only'); 
      goUpload = false; 
     } 
     if (uploadFile.size > 2000000) { // 2mb 
      common.notifyError('Please upload a smaller image, max size is 2 MB'); 
      goUpload = false; 
     } 
     if (goUpload == true) { 
      data.submit(); 
     } 
    }, 

Więc po prostu za pomocą opcji Dodaj do umożliwienia tylko typy obrazów w regex, a także sprawdzanie (w moim przypadku), rozmiar pliku to maksimum 2 MB.

raczej podstawowe, i znowu jestem pewien opcje MaxFileSize pracować, po prostu jestem w tym tylko podstawowy skrypt wtyczki jquery.fileupload.js

EDIT powinny Dodałem w moim przypadku jestem przesyłasz tylko jeden plik (obraz profilu), a więc plik data.files [0]. Oczywiście, możesz oczywiście przeglądać zbiór plików.

+0

Wreszcie! Bardzo dużo szukałem przykładu, który zadziałał. Thx :) – william

+0

@william Serdecznie zapraszamy –

+0

Jak działa "data.submit()" dla wielu plików? – Hengjie

Powiązane problemy