1

フォトギャラリーから選択した画像を送信するスクリプト (Android 用の Phonegap) を作成しようとしていますが、うまくいきません。

私のスクリプトに従って:

function onCapturePhoto(imageURI) {

    var uri = encodeURI("https://www.myserver.com/webservices/uploadFoto.php");
    var options = new FileUploadOptions();
    options.fileKey = "file";
    options.fileName = imageURI.substr(imageURI.lastIndexOf('/')+1);
    options.mimeType = "text/jpeg";

    var ft = new FileTransfer();

    ft.upload(imageURI, uri, win, fail, options);

    function win(r) {
        console.log("Code: = " + r.responseCode);
        console.log("Response: = " + r.response);
        console.log("Sent: = " + r.bytesSent);
    }

    function fail(error) {
        console.log("An error has occurred: Code = " + error.code);
        console.log("upload error source: " + error.source);
        console.log("upload error target: " + error.target);
    }
}

function getPhoto() {
    navigator.camera.getPicture(onCapturePhoto, onFail, {
        quality: 80,
        destinationType: navigator.camera.DestinationType.FILE_URI,
        sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,
        allowEdit : true,
        targetWidth: 150,
        encodingType: navigator.camera.EncodingType.JPEG
    });
}

function onFail(message) {
    alert('Failed because: ' + message);
}

次のエラーが表示されます。

エラーが発生しました: コード = 1

アップロード エラー ソース: file:///storage/emulated/0/Android/data/mobi.monaca.debugger/cache/.Pic.jpg

アップロード エラー ターゲット: https://www.myserver.com/webservices/uploadFoto.php

Monaca デバッガーを使用しています。

4

1 に答える 1

2

画像をアップロードするための間違ったコード:

options.mimeType = "text/jpeg";

次のように変更します。

options.mimeType = "image/jpeg";

一方、Android 4.4 向けの便利なオプション コードもいくつかあります。

options.chunkedMode = false;
options.headers = {Connection: "close"};
于 2014-12-01T03:40:36.727 に答える