我使用以下代码从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);
但是这段代码会在文件中添加额外的标题信息。喜欢以下 - 的 * 内容处理:表格数据; NAME = “VALUE1”;
测试 - 的 * 内容处理:表格数据; NAME = “VALUE2”;
PARAM - 的 * 内容处理:表格数据; NAME = “文件”;文件名= “1.JPG” 内容类型:image / jpeg
因此,当文件存储到服务器中时,它无法打开为JPEG Image。 我发现options对象负责添加那些额外的头信息。 我通过赋值null尝试没有选项对象。但仍然没有额外的信息进入文件。期待在文件中没有任何额外信息的情况下上传文件的建议。
答案 0 :(得分:0)
试
options.mimeType="text/jpeg";
答案 1 :(得分: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服务器端的问题就是接收文件的脚本。