2013-04-15 30 views
13

Tôi đang sử dụng tải lên tệp jquery để tải tệp lên máy chủ. Tôi muốn hạn chế người dùng tải lên tối đa 6 tệp. Tôi tìm kiếm tệp tải lên jquery wiki nhưng không tìm thấy thông số cho nó. Có cách nào mà tôi có thể hạn chế người sử dụng trên số uplaodstải lên tệp jquery hạn chế số lượng tệp

+0

plugin jquery nào bạn đang sử dụng? nói chung bên trong chức năng gọi lại nó sẽ giữ những tập tin trong một số loại mảng json có kích thước bạn có thể đặt trong if() khoản –

+0

Một lý do tại sao không làm việc phiên bản: http://stackoverflow.com/questions/21347805/jquery-multiple-file- upload-limit-number-of-files-not-working –

Trả lời

29

Sử dụng maxNumberOfFiles đây là documentation:

$('#fileuploadbasic').fileupload({ 

maxNumberOfFiles: 6 

}); 
+0

Điều này không hoạt động trong trường hợp của tôi. Tôi có thể chọn nhiều hơn 6 tệp và nó cũng tải lên tất cả các tệp đã chọn. – basZero

+0

Tôi thấy rằng đôi khi trình duyệt lưu trữ tệp .js. Thử làm mới trang .js thực tế và xem các thay đổi có hiệu lực không. – BSUK

15

maxNumberOfFiles đã không làm việc cho tôi vì vậy tôi đã làm như sau

$('#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

Tuyệt vời, chính xác những gì tôi cần. –

+3

Điều này cũng không hoạt động đối với tôi. –

+2

Tôi không thể chỉnh sửa câu trả lời vì một lý do nào đó, nhưng nếu bạn thay thế trình xử lý "thay đổi" bằng "gửi", nó sẽ hoạt động. Điều đó đã làm các trick cho tôi và "thay đổi" đã không làm việc hoặc là :) – NaturalBornCamper

0

Bạn có thể giới hạn tệp tải lên bằng tệp "Uploadhandler.php" .thay đổi tùy chọn "max_number_of_files". làm việc cho tôi. Nhưng nó chỉ xác nhận khi bạn tải tệp lên.

+0

Điều này là hợp lệ. Rất nhiều các thiết lập có sẵn phía máy khách (thông qua js) và phía máy chủ (thông qua PHP). Tôi thấy hữu ích khi sao chép cả hai, để người dùng nhận được phản hồi của khách hàng trước khi tệp được tải lên, nhưng mức độ xác thực an toàn hơn cũng diễn ra trên máy chủ. – BSUK

0

Bạn có thể thử:

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

Nếu bạn đang sử dụng "Krajee" Tải file lên, sau đó bạn sẽ phải sử dụng

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

Nếu thiết lập là 0, nó có nghĩa là kích thước cho phép là không giới hạn. Mặc định là 0.

Các vấn đề liên quan