9

サーバーへの画像のアップロードに取り組んでいます。iOSを使用して画像を正常にアップロードできますが、Androidで試してみると、エラーコード3が表示されます。現在phonegapcordova1.8.1を使用しています。

私はすでにパラメータにtrueを追加しようとしました

upload(filePath, server, successCallback, errorCallback, options, **true**);

これを追加します

options.chunkedMode = false;

私のAndroidManifestファイルには次のものが含まれています。

<uses-permission android:name="android.permission.INTERNET" />

私のcordova.xmlファイルには次のものが含まれています。

<access origin="*"/>

私は何かが足りないのですか?

ありがとう

4

8 に答える 8

7

問題はおそらく Phonegap にはありません。サーバーが Windows ベースのサーバーである場合は、別のサーバーを使用してみてください。また、次の行を追加することを忘れないでください。

var options = new FileUploadOptions();
options.chunkedMode = false;
options.headers = {
      Connection: "close"
   };
于 2015-11-10T09:40:24.250 に答える
5

コードを追加:

var op;
op = new FileUploadOptions();

op.headers = {
    Connection: "close"
};

これを追加した後、コードはエラーなしで正常に動作し始めました。もう少し詳しい説明 : http://grandiz.com/phonegap-development/phonegap-file-transfer-error-code-3-solved

于 2013-10-09T09:28:28.427 に答える
2

これは私にも起こりました。指定する必要があります chunkedMode=false(http://stackoverflow.com/questions/8522729/phonegap-filetransfer-upload-fails-on-android)

var options = FileUploadOptions();
options.chunkedMode = false;
于 2012-09-06T12:42:31.943 に答える
0

これは phonegap ライブラリの未修正のバグです。バグ修正がなかったので、回避策を講じて問題を解決する必要がありました (基本的に、別のエラーが発生するたびに再アップロードします)。

ft.upload(path,
          encodeURI("http://yourdomain.com/upload.php"),
            function(result) {
                alert("Uploaded");
            },
            function(error) {
                ft.upload(path,
                encodeURI("http://yourdomain.com/upload.php"),
                function(result) {
                    alert("Uploaded");                  
                },
                function(error) {
                    alert("Error uploading image");
                },
                { fileName: name, fileKey: "file", mimeType: "image/jpeg", chunkedMode: false }, true);     
            },
            { fileName: name, fileKey: "file", mimeType: "image/jpeg", chunkedMode: false }, true);
于 2013-09-07T05:12:28.343 に答える
0

これも理由である可能性があり、私のために解決しました:

iOS 9 および OSX 10.11 では、アプリの Info.plist ファイルで例外ドメインを指定しない限り、データを要求する予定のすべてのホストに対して TLSv1.2 SSL が必要です。

( CFNetwork SSLHandshake に失敗した iOS 9 )

于 2015-09-14T08:43:58.717 に答える
0

AppBuilder で経験したこの問題について、Telerik に尋ねました。彼らの回答によると、Cordova のバグである可能性があります(私は 3.2 を使用しています)。

最新のFileTransfer ライブラリに更新し (すべての依存関係も更新します)、問題が解決するかどうかを確認することをお勧めします。実際、新しいライブラリをコンパイルするときに別の問題に遭遇しました。

それを試してみて、それがうまくいくかどうかを確認することをお勧めします。

于 2014-03-19T10:26:04.337 に答える
-1

次のいずれかを試すことができます。

ファイルのタグに設定android:debuggable="true"します。<application>AndroidManifest.xml

<access origin=".*"/>の代わりに*、コメント セクションで推奨されているように次のように設定します。

<!-- <access origin="https://example.com" /> allow any secure requests to example.com -->
<!-- <access origin="https://example.com" subdomains="true" /> such as above, but including subdomains, such as www -->
<!-- <access origin=".*"/> Allow all domains, suggested development use only -->
于 2012-08-17T19:09:00.260 に答える