2011-07-27 43 views
9

Tôi muốn triển khai tải lên có thể tiếp tục với Html5 và mọi thứ dường như hoạt động, ngoại trừ việc xác định rằng tệp sẽ được tải lên giống với tệp đã tải lên một phần. Lý tưởng nhất, tôi sẽ có một số băm phía khách hàng của tập tin mà tạo ra id duy nhất - tuy nhiên tôi không thể tìm thấy bất kỳ thực hiện làm việc của nó và nó có vẻ quá chậm cho các tập tin lớn (như tôi đang xử lý).Tải lên lại bằng API tải lên tệp HTML5 -

Tiếp theo, tôi đã nghĩ đến việc sử dụng đường dẫn đến tệp làm số nhận dạng duy nhất, nhưng tôi không thấy bất kỳ cách nào để lấy nó từ API. tên tệp, thậm chí xem xét tên tệp cho mỗi người dùng không thể là duy nhất vì người dùng có xu hướng có tên chung cho tệp. Bất cứ ai cũng có thể nghĩ ra một giải pháp cho điều này?

Trả lời

1

Tôi đoán bạn lựa chọn tốt nhất là một số băm đơn giản (MD5 là quá chậm trên các tệp lớn hữu ích).

Cách khác: Đặt tên tệp tải lên theo tên tệp (và một số loại đánh số đang chạy khi nhiều tệp có cùng tên được tải lên, ví dụ: tệp-1, tệp-2, tệp-3) và kiểm tra các byte ngẫu nhiên trong tệp đã tải lên và tệp cục bộ. Ví dụ:

  1. Tìm tất cả các file có cùng tên tệp (không bao gồm việc đánh số số chạy)
  2. Hãy so sánh 10 byte mỗi 10 MB từ máy chủ với các tập tin địa phương, nếu các byte phù hợp bạn có thể cảm thấy đủ tự tin về đây là tập tin đúng.

Tất nhiên điều này có thể dẫn đến tệp sai, nhưng có thể băm.

0

Như đã đề cập trong How to resume a paused or broken file upload tại Mozilla Hacks, có lẽ bạn có thể lưu tệp trong trình duyệt bằng cách sử dụng IndexedDB để bạn có thể tiếp tục tải lên mà không cần người dùng chọn lại tệp.

Để biết hướng dẫn về cách lưu trữ tệp bằng IndexedDB, hãy xem Storing images and files in IndexedDB.

+0

Ý tưởng của bạn có vẻ như là cách duy nhất để tiếp tục tải lên mà không cần người dùng chọn lại tệp. Nhưng tôi đoán điều này sẽ không phải là một giải pháp khả thi khi bạn đang đối phó với các tập tin lớn như câu hỏi nói. Cũng có thể có một số cân nhắc về kích thước tối đa: http://stackoverflow.com/questions/5692820/max-size-in-indexeddb. – zpon

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