0
PhoneGapに奇妙な問題があります。アプリケーションからビデオを録画し、サーバーにアップロードしようとしています。PhoneGapビデオを録画してサーバーにアップロード
app.initialize();
$(function(){
//capture callback
var captureSuccess = function(mediaFiles) {
var i, len;
for(i = 0, len = mediaFiles.length; i < len; i += 1) {
uploadFile(mediaFiles[i]);
}
};
function uploadFile(mediaFiles) {
var options = new FileUploadOptions();
options.fileKey = 'file';
options.fileName = mediaFiles.name;
options.contentType = 'video/mp4';
options.mimeType = mediaFiles.type;
options.chunkedMode = true;
var ft = new FileTransfer();
var path = mediaFiles.fullPath;
//var name = mediaFiles.name;
ft.upload(path,
'http://domainName/~me/upload.php',
function(result) { //success callback
navigator.notification.alert('Path: ' + path + ' bytesSent: ' + result.bytesSent + ' responseCode: ' + result.responseCode + ' response: ' + result.response, null, 'Upload Error');
$("#infoMessage").html('Success!');
},
function(error) { //error callback
navigator.notification.alert('Error uploading file ' + path + ', Error code: ' + error.code + ' Target: ' + error.target + ' http_status: ' + error.http_status + ' Body: ' + error.body + ' Exception: ' + error.exception.toString(), null, 'Upload Error');
$("#infoMessage").html('Problem')
},
options);
}
// capture error callback
var captureError = function(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
//start video capture
var accessCamera = function() {
navigator.device.capture.captureVideo(captureSuccess, captureError, { limit:1 });
};
$("#cambtn").on('click', accessCamera);
私はPostmanアプリケーションでテストしなければなりません。私はPhoneGapのアプリケーション「成功コールバック」から取得すること 応答は次のとおりです。Screenshot
サーバーサイドスクリプトは、今のところとても基本的なものです:
$target_dir = "uploads/";
if(isset($_FILES['file'])) {
$target_file = $target_dir . basename($_FILES["file"]["name"]);
move_uploaded_file($_FILES['file']['tmp_name'], $target_file);
}
print_r($_FILES); //This line returns empty array when request is send by the application but it returns array with data when I test it with Postman.
die();
問題はchunkedModeオプションによるものでした。 falseに設定する必要があります。
にすべての方法をスクロールした場合、それは問題ではありませんと言いますまったく。 – xcentric
ご迷惑をおかけいたしました。エラーを説明しているコードのコメントを見る前に、画像に「アップロードエラー」が表示されました。私はアンドロイドモニターとサーバーのログをチェックします。 PHPにログを書き込ませ、そこでトラブルシューティングを行うこともできます。私はhttp://stackoverflow.com/questions/29099303/uploading-file-over-https-with-cordova-filetransferを見ていて、エラーがあってもsuccessブロックが呼び出される可能性があるかどうかを調べるURLはホワイトリストに登録されていないか、そのようなものではありません。 –
ヘッダー( 'Access-Control-Allow-Origin:*')もチェックしてください。あなたのPHPで –