2012-03-03 8 views
7

私たちは、phonegapモバイルアプリケーションからWebサーバーにビデオファイルをアップロードしようとしています。 iPhoneではすべてがうまくいくが、Androidではデータがチャンクで送られ、私たちのサーバーアプリケーション(php)はそれに対処できない。チャンクデータをAndroid Gphoneファイルアップロードから読み取る方法

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

chunkedModeをfalseに変更しようとしました。これは、Androidの携帯電話がクラッシュすると、1メガバイト以上の動画では、より小さいファイルで動作します。 (これが、デフォルトでchunkModeをオンにする理由です)。

私たちの質問には、PHPを使用してアップロードチャンクデータを読み取る方法ですか? Apacheにこのデータを読むためにオンにする必要がある設定がありますか?

答えて

1

ウェブサーバーの問題で終了しました。 Apacheは、チャンクモードをサポートするように設定する必要があります。またNGNIXはデフォルトでチャンクモードをサポートしていないので、モジュールをインストールする必要があります。http://wiki.nginx.org/HttpChunkinModule

+0

これをApacheでどのように達成しましたか?解を提供してください。ありがとう! – DevD

1

この問題も発生しました。ファイルはiOSでうまくアップロードされるため、サーバーはchunkedModeを処理しますが、Androidではfileuploadが接続エラーのために「3」を返します。私はここで解決策を試しました:Phonegap : FileTransfer.upload() fails on Android、しかし運もありません。読書の間に違いはありません

3

は非チャンク対サーバー側でデータをチャンク。これは、電話機がデータを(8192バイトのチャンクで、または1つのストリームとして)送信する方法です。

ウェブ上でこの機能を回避するチャタリングのLOTがあります。個人的には、ファイルアップロードのソリューション全体が、特に大きなファイル(たとえば、ビデオファイル)で少しばかりであることがわかりました。

一部の人々は、8メガバイトのマークの周りに起こる私のアンドロイド携帯電話上で、4.8メガバイトよりも大きなファイルで発生し報告します。

ときに私のアプリのアップロードファイルや添付ファイルがない(これは接続エラー3シナリオでは何が起こるかである)私はそれを記録し、私は問題が発生している携帯電話を見ることができます。それはiphoneでも起こります(特定のモデル)。

それが起こるとき、あなたはアンドロイドのログを見れば、あなたもあまりにもメモリ不足の例外のうち表示されることがあります。

これはどのように役立ちますか?それは実際にはありませんが、うまくいけば問題の内容を説明するのに役立ちます。残念ながら、私たちができることはあまりありません - 電話帳のソースコードへの貢献とファイル転送メソッドの再作成は別として!関心の外

、問題が発生している携帯電話に、あなたは問題なく、Facebookの、たとえば、使用して大規模なファイルをアップロードすることができますか?しかし、そのアプリケーションは、ファイルをアップロードしていること確かにその方法は、電話のする必要があります..

0

別の奇妙な観察。間違ったURLに50MBの動画ファイルをアップロードしました。それはどこにも行きませんでしたが、Androidは数分間車輪を回転させ、成功のコールバックを引き起こしました。エラー3もクラッシュもありません。誤字を修正して正しいURLに送信すると、エラー3が発生します。

関連する問題