2017-08-17 10 views
1

FileTransfer pluginを介してリモートサーバにCordovaのMediaCapture plugin経由で録画されたビデオを送信しますが、ファイルやデータはありません。サーバーは要求を受信しますが、空であるようです。Cordova FileTransferがファイルを送信しましたが、何も受信しませんでした

コルドバによれば、すべてうまくいく。ここでは、成功コールバックから読み出しています:

enter image description here

そして、ここでは私のJSです:(mediaFiles[0]は、キャプチャしたビデオファイルである)

var options = new FileUploadOptions(); 
options.fileName = 'foo.bar'; 
options.mimeType = mediaFiles[0].type; 
options.params = { 
    mime: mediaFiles[0].type 
}; 

var ft = new FileTransfer(); 
ft.upload(
    mediaFiles[0].fullPath, 
    encodeURI("http://xxxxxx.com/receive-video.php"), 
    function (r) { 
     console.log(r); 
     alert('sent file!'); 
    }, 
    function (error) { 
     alert('error'); 
     console.log(error); 
    }, 
    options, 
    true 
); 

は(以降trueに設定され、trustAllHosts、最後のparamに注意してください。私のテストサーバーは自己署名されています)。

Cordovaは明らかにデータを送信したと思っていますが、PHPスクリプトには同意しません。ここに私のPHPがあります:

file_put_contents(
    'readout.txt', 
    "Payload\n----------\n". 
    file_get_contents('php://input'). 
    "\n\nRequest\n----------\n". 
    print_r($_REQUEST, 1). 
    "\n\nFiles\n----------\n". 
    print_r($_FILES, 1). 
    "\n\nPost\n----------\n". 
    print_r($_POST, 1) 
); 

ご覧のとおり、どこにでもいます。ただし、これらのすべてが空の読み取り値になります(readout.txt)。

私は間違っていますか?

答えて

2

chunkedMode paramoptions)の犯人が判明しました。

これが他の人に役立つ場合は、この機能を無効にしてください。

options.chunkedMode = false; 

オンにして空のリクエストの動作を説明する方法がわかりません。 paramは、何らかの進捗のフィードバックを可能にするために、ファイルをチャンクで送信するために存在します。

関連する問題