[英]How to send a JSON data object to the server using Javascript XMLHttpRequest?
[英]How to send image file in inputstream format to server using XMLHttpRequest object
我在webservice中有四个参数。 我正在使用android应用程序测试过该服务。 但是我不能在phonegap中做同样的事情。
参数:name,emailid,pass和imagefile。 图片的格式为base64png。 在服务器端,我接收为Inputstream。 寻找以二进制格式发送的帮助。
body+= ServiceHttpHeader('name',name1);
body+= ServiceHttpHeader('emailid',emailid1);
body+= ServiceHttpHeader('pass',pass1);
body +='Content-Disposition: form-data; name=imagedetails;'
body += 'filename='+imagedetails+'\r\n';
body += "Content-Type: application/octet-stream\r\n\r\n ";
body +=imgdetailurl+'\r\n';
body += '--' + boundary + '--';
ImageUploadRequest.setRequestHeader('Cache-Control', 'no-cache');
ImageUploadRequest.send(body);
Phonegap有自己的API,可以将图像上传到服务器。
一种解决方案是您首先将映像上传到服务器。 成功上传后,您将所有其他参数以及服务器上文件的路径传递给另一个脚本,以执行您想要在此处执行的任何处理。
Phonegap的文档说,不应使用base64编码的图像进行上传,因为这经常会导致最新的高分辨率相机图像出错。 请改用FILE_URI。 你可以在这里阅读更多。
http://docs.phonegap.com/en/1.2.0/phonegap_file_file.md.html#FileTransfer http://docs.phonegap.com/en/2.6.0/cordova_camera_camera.md.html#Camera (有关camera.getPicture())
例
function uploadPhotoToServer(imageURI)
{
var options = new FileUploadOptions();
options.fileKey="img_file";
options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1);
options.mimeType="image/jpeg";
window.localStorage.setItem("upload_file_name",options.fileName);
var params = new Object();
params.value1 = "test";
params.value2 = "param";
options.params = params;
options.chunkedMode = false;
var ft = new FileTransfer();
ft.upload(imageURI, encodeURI("<your image upload script url>"), onUploadSuccess, onFail, options);
}
function onUploadSuccess(r)
{
var filename = window.localStorage.getItem("upload_file_name");
file_path_on_server = "path/to/images/folder"+filename;
// other parameters
var email = <the email Id> ;
var name = <the name>;
var parameters = "name="+name+"&email="+email+"&img_path="+file_path_on_server;
$.ajax({
url: <your current script url>,
data: parameters ,
dataType: "jsonp",
timeout:10000,
success:function(json) {
alert(JSON.stringify(json, undefined,2));
},
error:function() {
alert("Error");
},
type:"GET"
});
function onFail()
{
alert("Error");
}
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.