Phonegap Filetransfer使用WCF OData上传问题

时间:2014-03-11 08:27:52

标签: c# wcf file-upload cordova odata

我正在尝试使用phonegap“FileTransfer”上传文件。我正在使用 .NET WCF OData 来上传图片。 “上传”功能未调用我的API,并返回以下错误消息:

{"code":null,"source":null,"http_stats":null,"body":null}

我描述的代码如下:

navigator.camera.getPicture(function(imageURI){ 
var url = encodeURI("http://api.xyz.com/DataService/DataService.svc/UploadImage");

    var params = new Object();
    params.id= parseInt(1);

    var options = new FileUploadOptions();
    options.fileKey = "file";
    options.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);
    options.mimeType = "image/jpeg";
    options.params = params;
    options.chunkedMode = true;

    var ft = new FileTransfer();
    ft.upload(imageURI, url, function (data) { alert(JSON.stringify(data)) }, function (data) { alert(JSON.stringify(data)) }, options);
}

和我的 WCF OData 代码如下:

[WebInvoke]
public void UploadImage(int id)
{
    // **what to write here???**
}

我也尝试使用以下代码,但 window.resolveLocalFileSystemURI函数在NPObject错误时抛出Error调用方法

navigator.camera.getPicture(function (imageURI) {
var _this = this;
var encodedURL = encodeURI("http://api.xyz.com/DataService/DataService.svc/UploadImage");
try {
 this.op = new FileUploadOptions();
 this.op.fileKey = "file";
 this.op.fileName = imageURI.substr(imageURI.lastIndexOf('/') + 1);
 this.op.mimeType = "image/jpeg";
 this.op.chunkedMode = false;
 this.op.headers = { Connection: "close" };

 this.ft = new FileTransfer();
 if (window.device != undefined && device.platform == "Android") {
     window.resolveLocalFileSystemURI(imageURI, function (fileEntry) {
         fileEntry.file(function (fileObj) {
             var fileFullPath = fileObj.fullPath;
             _this.op.fileName = fileFullPath.substr(fileFullPath.lastIndexOf('/') + 1);
             _this.ft.upload(fileFullPath, encodedURL, function (data) { alert("Success: " + JSON.stringify(data)); }, function (data) { alert("Failour: " + JSON.stringify(data)); }, _this.op, true);
         });
     });
 } else {
        this.ft.upload(imageURI, encodedURL, function (data) { alert("Success: " + JSON.stringify(data)); }, function (data) { alert("Failour: " + JSON.stringify(data)); }, this.op, true);
   }
} catch (_error) {
 alert(_error);
 }
},
function (message) { },
{
 quality: 50,
 destinationType: navigator.camera.DestinationType.FILE_URI,
 sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY
});
}

0 个答案:

没有答案