2012-03-03 27 views
7

Chúng tôi đang cố gắng tải lên tệp video từ ứng dụng di động dành cho thiết bị di động đến máy chủ web. Trong tất cả mọi thứ iPhone hoạt động tuyệt vời, nhưng trên Android dữ liệu được gửi theo khối và ứng dụng máy chủ của chúng tôi (php) là không thể đối phó với nó.Cách đọc Dữ liệu đã Chunked từ Tải Tệp Điện thoại Khoảng cách trong Android

//phonegap 
var options = FileUploadOptions(); 
options.chunkedMode = true; //default 

Chúng tôi đã thử chuyển chunkedMode thành false. Điều đó hoạt động với các tệp nhỏ hơn bằng bất kỳ video nào vượt quá 1mb sự cố trên điện thoại Android. (đó là lý do họ bật chunkMode theo mặc định).

Câu hỏi của chúng tôi là cách đọc dữ liệu đoạn đã tải lên bằng cách sử dụng php? Có một thiết lập trong Apache cho rằng cần phải được bật để đọc dữ liệu này?

Trả lời

1

Nó đã kết thúc là sự cố máy chủ web. Apache cần được cấu hình để hỗ trợ chế độ chunked. Cũng lưu ý rằng NGNIX không có hỗ trợ chế độ chunked theo mặc định, bạn sẽ cần phải cài đặt một mô-đun http://wiki.nginx.org/HttpChunkinModule

+0

cách bạn đạt được điều này cho apache, Vui lòng cung cấp giải pháp. Cảm ơn! – DevD

1

Tôi cũng đã gặp phải sự cố này. Tệp tải lên tốt trong iOS, vì vậy máy chủ đang xử lý chunkedMode ở đó, nhưng trên Android, tệp tải lên trả về "3" cho lỗi kết nối. Tôi đã thử giải pháp ở đây: Phonegap : FileTransfer.upload() fails on Android, nhưng không may mắn.

3

Không có sự khác biệt giữa đọc dữ liệu chunked ở phía máy chủ so với không chunked. nó chỉ là cách điện thoại gửi dữ liệu (theo khối 8192 byte, hoặc dưới dạng một luồng).

Có một TẤT CẢ nói chuyện xung quanh tính năng này trên web và cá nhân tôi đã tìm thấy toàn bộ giải pháp tải tệp hơi yếu, đặc biệt là trên các tệp lớn hơn (ví dụ: tệp video).

Một số người báo cáo điều đó xảy ra trên các tệp lớn hơn 4.8mb, trên điện thoại Android của tôi, nó xảy ra xung quanh mốc 8mb.

Khi ứng dụng của tôi tải lên tệp và không có tệp đính kèm (đây là điều xảy ra trong trường hợp lỗi kết nối 3), tôi có thể xem các điện thoại đang gặp sự cố. nó cũng xảy ra với iphones (một số model nhất định).

Nếu bạn nhìn vào nhật ký android khi nó xảy ra, bạn cũng có thể thấy một ngoại lệ bộ nhớ ngoài.

Điều này giúp bạn như thế nào? nó không, thực sự - nhưng hy vọng nó giúp giải thích vấn đề là gì. Thật không may, chúng tôi không thể làm gì nhiều - ngoài việc đóng góp vào mã nguồn của điện thoại và viết lại phương thức chuyển mã!

Không quan tâm, trên điện thoại bạn đang gặp sự cố, bạn có thể tải lên các tệp lớn bằng facebook, không có sự cố không? Tuy nhiên, ứng dụng đó đang tải lên tệp chắc chắn là cách mà điện thoại nên làm việc đó ..

0

Một quan sát khác. Tôi đã tải lên một tệp video 50MB tới URL sai. Nó không đi đến đâu cả, nhưng Android xoay bánh xe trong vài phút và kích hoạt sự gọi lại thành công. Không có lỗi 3 và không bị lỗi. Khi tôi sửa lỗi đánh máy và gửi đến URL chính xác, tôi gặp lỗi 3.

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