我想将参数从PhoneGap文件传输插件传递到ASP.NET MVC Web服务。
所以我在JavaScript中准备了Params
:
var Params = {};
Params.Order = $("#Order").val();
alert($("#Order").val());//It works it is not null
Params.latitude = $("#latitude").val();
Params.longitude = $("#longitude").val();
options.Params = Params;
ft = new FileTransfer();
ft.upload(sPicData, encodeURI("../Mobile/UploadPhoto"), win, fail, options);
现在我想从我的ASP.NET MVC Web服务访问Params
,但是这段代码会出错(Null exception
)。
[HttpPost]
public JsonResult UploadPhoto()
{
// File upload code here and it works well.
// File upload work but there is problem with Params
System.Collections.Specialized.NameValueCollection parameters = Request.Params;
string[] imageNum = parameters.GetValues("Order");
// string order=imageNum[0]
string[] latitude = parameters.GetValues("latitude");
string[] longitude = parameters.GetValues("longitude");
//other codes
}
答案 0 :(得分:0)
function photoUpload() {
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = sPicData.substr(sPicData.lastIndexOf('/') + 1);
options.mimeType = "image/jpeg";
options.chunkedMode = false;
var params = new Object();
navigator.geolocation.getCurrentPosition(
function(position) {
params.fileKey = "file";
params.longitude = position.coords.longitude;
params.latitude = position.coords.latitude;
params.altitude = position.coords.altitude;
params.accuracy = position.coords.accuracy;
params.altitudeAccuracy = position.coords.altitudeAccuracy;
params.heading = position.coords.heading;
params.speed = position.coords.speed;
params.timestamp = position.timestamp;
//alert(params.longitude + ',' + params.latitude);
options.params = params;
ft = new FileTransfer();
ft.upload(sPicData, "http://YOURSERVER/upload.aspx", win, fail, options);
});
}
试试这个,它对我有用。 只需将不同参数中的地理数据作为普通的已过帐表单字段抓取。
答案 1 :(得分:0)
我遇到了同样的问题。 How to use phonegap FileTransfer parameters with .asmx web service
尝试更改
System.Collections.Specialized.NameValueCollection parameters =
Request.Params;
到
System.Collections.Specialized.NameValueCollection parameters =
HttpContext.Current.Request.Params;