2010-11-16 51 views
8

Khi người dùng chọn tệp được tải lên, có cách nào tôi có thể nhận được kích thước chính xác của tệp này trước khi quá trình tải lên thậm chí bắt đầu không? Tôi đoán điều này cần được thực hiện ở phía máy khách với jQuery hoặc JavaScript. Có ý tưởng nào không?Tải kích thước tệp tải lên trước khi tải lên

Trả lời

5

này không thể được thực hiện trong tinh khiết Javascript trong trình duyệt hiện nay.

Thay vào đó, bạn có thể sử dụng Uploadify, sử dụng Flash.

In non-IE browsers, bạn cũng có thể use HTML5 to read files on the client.

+0

lại: http://www.caniuse.com/. Liên kết thông tin nhưng buồn. Tôi tự hỏi nếu IE sẽ mãi mãi trong màu đỏ. –

0

Javascript không có khả năng kiểm tra kích thước tệp (hoặc truy cập hệ thống tệp cho vấn đề đó). Bạn cần tải lên tệp để có kích thước

0

Tôi khuyên bạn nên xem API tệp HTML5. Điều này, kết hợp với một số JS có thể có thể giúp bạn. Tôi chỉ nói có thể vì tôi chưa có cơ hội duyệt qua phần này của tiêu chuẩn HTML5.

http://www.w3.org/TR/FileAPI/#dfn-filereader

Cách upload file PHP làm việc, nó là rất khó để kiểm tra chi tiết hồ sơ trước đó, hoặc trong một tập tin tải lên (kể từ khi tập tin được tải lên trước khi mã của bạn thậm chí được nạp).

Tôi biết có thể thực hiện một số thứ ưa thích trong một số ngôn ngữ khác (có thể là Perl hoặc Python) xử lý tệp tải lên trực tiếp bằng tập lệnh (nơi tập lệnh mở ổ cắm và xử lý toàn bộ quá trình chuyển). thực hiện điều này cho bạn và chấp nhận bất kỳ tệp nào thay mặt cho tập lệnh của bạn. Tệp bị hủy nếu nó không nằm trong giới hạn chấp nhận được của PHP, nhưng chỉ sau khi tệp được tải lên hoàn toàn.

Cũng đã có một số triển khai tải lên tệp được tạo bằng Flash nhưng không phải là trình tạo mã ActionScript, tôi cũng không thể giúp quá nhiều.

1
$("#file_input_selector").bind('change', function(){ 
alert(this.files[0].size); 
}); 

Không chắc chắn về tất cả sự cố tương thích, nhưng điều này dường như chỉ hoạt động tốt cho tôi.

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