2012-06-06 110 views
0

如何將移動設備上的圖像上傳到我的外部數據庫?PhoneGap文件上傳到WCF

這裏是我當前的WCF服務:

接口:

[WebInvoke(UriTemplate = "/Upload", Method = "POST", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped), CorsEnabled] 
string UploadProfileImage(string image); 

類方法:

public string UploadProfileImage(string image)  
{ 
    // Upload code needs to go here. 
} 

我可以發佈使用AJAX就好了,我只是失去了對如何用圖像做。

以下是我如何撰寫文章的jQuery示例。

// This is the success function that gets called after selecting an image from my device 
function uploadSuccess(imageURI) { 
    uploadImage(imageURI); 
} 

function uploadImage(imageURI) 
{ 
    var data = '{"image":"' + imageURI + '"}' 
    $.ajax({ 
     url: "http://192.168.101.55:8848/api/Upload", 
     type: "POST", 
     contentType: "application/json", 
     data: data, 
     success: function (result) { 

     }, 
     error: function (jqXHR, textStatus, errorThrown) { 

     } 
    }); 
} 
+0

您是否試圖將客戶端的圖像上載到您的REST服務?如果是這種情況,你的服務方法的參數應該是類型流而不是字符串。 – Rajesh

+0

是的,謝謝。我只是想出了。我最大的問題是我在LogCat調試控制檯中出現錯誤,提示'Error Bad Request'錯誤。如果我能弄清楚錯誤是什麼,那麼我可能會有更多的進展。 – PsychoDUCK

+0

錯誤的請求可能是由於您的客戶端在字節數組中發送的,因爲服務方法期望得到一個字符串。只需將服務方法參數類型更改爲流,並希望它能夠正常工作。確保將readerQuotas設置爲上傳大文件 – Rajesh

回答

0

我想你不能通過跨域發佈限制使用jquery實現這一點。
您必須創建表單並將表單「action」指向service方法的url,將enctype =「multipart/form-data」添加到表單標記。
不要忘記將服務輸入參數類型更改爲「流」