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”;

测试 -- * 内容配置:表单数据;名称=“值2”;

参数 -- * 内容处置:表单数据;名称=“文件”;filename="1.jpg" 内容类型:image/jpeg

因此,当文件存储到服务器中时,它不能作为 JPEG 图像打开。我发现选项对象负责添加那些额外的标头信息。我通过分配 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 服务器需要知道如何处理传入的文件。我相信问题出在网络服务器端,即接收文件的脚本。

于 2012-05-21T16:43:43.753 回答