「もっと使おうPhoneGap/Cordova 2.0.0 - 第8回 File APIを使ったiOS/Androidアプリケーション作成[その5]」 のサンプルで、アップロードができない
http://gihyo.jp/dev/serial/01/phonegap2/0008?page=2
上記のコードをもとにmonacaでiPadのアップロードアプリを作成中です。
現状は(一部抜粋)下記のとおりです、
uploadFileを実行することでgihyojp_logo2.pngをhttp://10.0.0.183/file/receive.phpに送るというものです。receive.phpは上のリンク先の内容と同一です。
function uploadFile(event) {
// FileTransferオブジェクトを作成
var fileTransfer = new FileTransfer();
// アップロード先URIをencodeURIでエンコード
var uri = encodeURI('http://10.0.0.183/file/receive.php');
// FileUploadOptionsオブジェクトを作成し,送信時の情報を指定
var uploadOptions = new FileUploadOptions();
uploadOptions.fileKey = 'file';
uploadOptions.fileName = 'gihyojp_logo2.png';
var ref = window.open('http://10.0.0.183/file/receive.php', '_blank', 'location=no');
// ファイルのアップロードを実行
fileTransfer.upload(cordova.file.documentsDirectory+'gihyojp_logo2.png', uri, uploadSuccess, uploadFail, uploadOptions);
}
function uploadSuccess(uploadResult) {
var result;
// アップロード先(receive.php)から返るJSONをパース
if ( 'Android' === device.platform ) {
result = JSON.parse(uploadResult.response);
} else {
// iOSの場合はエンコードされた文字列になるため,decodeURIでデコード
result = JSON.parse(decodeURI(uploadResult.response));
}
alert(result);
if ( 0 === result.errorCode ) {
alert('ファイルのアップロードに成功しました\nbytesSent: ' + uploadResult.bytesSent + '\nresponseCode: ' + uploadResult.responseCode);
} else {
alert('ファイルのアップロードに失敗しました\n' + result.message + '\nbytesSent: ' + uploadResult.bytesSent + '\nresponseCode: ' + uploadResult.responseCode);
}
}
実行結果は
ファイルのアップロードに失敗しました
null
bytesSent:2061
responseCode:200
となります。resultがなにもないようですが、どこに問題があるのでしょうか?