Tôi đang làm việc trên một ứng dụng web. Có một nơi mà người dùng có thể tải tệp lên bằng giao thức HTTP. Có một sự lựa chọn giữa kiểm soát tải lên tệp HTML cổ điển và một ứng dụng Java để tải lên các tệp.Cách tốt nhất để tải lên nhiều tệp từ trình duyệt
Tải lên tệp HTML cổ điển không tuyệt vời vì bạn chỉ có thể chọn một tệp một lúc và rất khó để có được bất kỳ chỉ báo tiến trình nào trong quá trình tải lên thực tế (cuối cùng tôi đã sử dụng bộ đếm thời gian làm mới chỉ báo tiến trình với dữ liệu được tìm nạp từ máy chủ thông qua cuộc gọi AJAX). Ưu điểm: nó luôn hoạt động.
Với Java applet, tôi có thể thực hiện nhiều việc hơn: chọn nhiều tệp cùng một lúc (ngay cả thư mục), nén tệp, nhận thanh tiến trình thực, tệp drag'n'drop trên applet, v.v ...
NHƯNG có một vài nhược điểm:
- đó là một cơn ác mộng để làm cho nó hoạt động đúng trên Mac Safari và Mac Firefox (Cảm ơn LiveConnect)
- UI là không chính xác giao diện người dùng tự nhiên và một số người nhận thấy rằng
- applet không đáp ứng được nhu cầu (có thể là lỗi của tôi, nhưng mọi thứ đều ổn với tôi)
- có lỗi trong lớp Java
UrlConnection
với HTTPS, vì vậy tôi sử dụng máy khách HTTP chung HTTP để thực hiện tải lên HTTP thực tế. Đó là một gói khá lớn và làm chậm việc tải file .jar - Apache HTTP thông thường khách hàng đôi khi rắc rối xảy ra thông qua proxy
- thời gian chạy Java là khá lớn
Tôi đã duy trì này Java applet trong một thời gian nhưng bây giờ tôi đang chán với tất cả những hạn chế, và xem xét việc viết/mua một thành phần hoàn toàn mới để tải lên các tập tin này.
Câu hỏi
Nếu bạn có các yêu cầu sau:
- upload nhiều file một cách dễ dàng từ trình duyệt, thông qua HTTP hoặc HTTPS
- nén các tập tin để giảm thời gian tải lên
- tải lên sẽ hoạt động trên bất kỳ nền tảng nào, với giao diện người dùng gốc
- phải có khả năng tải lên các tệp lớn, tối đa 2GB t nhất
- bạn có carte blanche trên công nghệ
công nghệ gì/compontent bạn sẽ sử dụng?
Edit:
- Kéo và Thả các tập tin trên các thành phần sẽ là một cộng tuyệt vời.
- Dường như có rất nhiều sự cố liên quan đến lỗi với Trình phát Flash (swfupload known issues). Hỗ trợ Mac phù hợp và tải lên thông qua proxy với xác thực là các tùy chọn mà tôi không thể làm mà không có. Điều này có lẽ sẽ loại trừ tất cả các tùy chọn dựa trên Flash :-(.
- Tôi loại trừ tất cả các tùy chọn chỉ HTML/Javascript vì bạn không thể chọn nhiều tệp cùng lúc với điều khiển HTML cổ điển. Đó là một nỗi đau khi nhấp vào nút "duyệt" lần n lần khi bạn muốn chọn nhiều tệp trong một thư mục.
Còn video tải lên có thể tiếp tục lại thì sao? Điều đó có vẻ thực sự quan trọng đối với tôi.Không ai muốn khởi động lại quá trình tải lên không thành công sau một vài giờ. –
Đúng vậy, trong trường hợp đó tôi không nghĩ rằng bạn vẫn có thể sử dụng Flash, chỉ có Java (và Silverlight?) –
Xin chào một Trình tải lên dựa trên Flash khác được tìm thấy tại http://digitarald.de/project/fancyupload/ –