0

Android avdから画像をアップロードするために次のコードを使用しています。

        var options = new FileUploadOptions();
        options.fileKey="file";
        options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
        options.mimeType="text/plain";
        var filename = imageURI.substr(imageURI.lastIndexOf('/')+1);
        var upload_url="http://example.com";
        alert(upload_url);
        alert(filename);

        var params = new Object();
        params.value1 = "test";
        params.value2 = "param";

        options.params = params;
        options.chunkedMode = false;
        options=null;

        var ft = new FileTransfer();
        ft.upload(imageURI, upload_url, picUploadSuccess, picUploadFailed,options);

ただし、このコードは、ファイルに追加のヘッダー情報をほとんど追加しません。以下のように -- * Content-Disposition: form-data; 名前="値1";

test -- * Content-Disposition: フォームデータ; 名前="値2";

param -- * Content-Disposition: フォームデータ; 名前="ファイル"; ファイル名="1.jpg" コンテンツ タイプ: 画像/jpeg

そのため、ファイルがサーバーに保存されている場合、JPEG 画像として開くことはできません。options オブジェクトがこれらの追加のヘッダー情報を追加する責任があることがわかりました。nullを割り当てて、オプションオブジェクトなしで試しました。ただし、ファイルには追加情報がほとんどありません。

ファイル内に追加情報なしでファイルをアップロードする提案を楽しみにしています。

4

2 に答える 2

0

試す

options.mimeType="text/jpeg";
于 2012-05-21T16:26:37.207 に答える
0

これらの行を取り出すと、次のようになります。

var params = new Object();
params.value1 = "test";
params.value2 = "param";
options.params = params;

表示されません:

--* Content-Disposition: form-data; name="value1"; test 
--* Content-Disposition: form-data; name="value2"; param

もう。ただし、次のように表示されます。

--* Content-Disposition: form-data; name="file"; filename="1.jpg" Content-Type: image/jpeg

Web サーバーは着信ファイルの処理方法を知る必要があるためです。問題は Web サーバー側、つまりファイルを受け取るスクリプトにあると思います。

于 2012-05-21T16:43:43.753 に答える