PhoneGap文件将插件参数传递给ASP.NET服务

时间:2015-07-18 16:26:06

标签: c# asp.net-mvc cordova file-upload phonegap-plugins

我想将参数从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
    }

2 个答案:

答案 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;