2013-06-11 38 views
1

我要求將圖片從手機上傳到服務器。首先,我將圖像轉換爲base64,並將該數據作爲JSON參數發送給WCF服務調用。但我的問題是代碼總是進入jQuery ajax錯誤塊。如果我減小base64編碼圖像大小的大小,它會顯示成功消息。那麼我有什麼問題嗎?從手機上傳圖片到服務器並顯示JSON未定義錯誤

以下是我的WCF服務。 [IMyNewApp.cs]

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Runtime.Serialization; 
using System.ServiceModel; 
using System.Text; 
using System.ServiceModel.Web; 
using System.Web.UI.WebControls; 

namespace MyApp 
{ 

    [ServiceContract] 
    public interface IMyNewApp 
    { 
      [OperationContract] 
     [WebGet(ResponseFormat = WebMessageFormat.Json)] 
     void Add(int ID , string PIC); 

    } 
} 

[MyNewApp.svc.cs]

using System.Data; 
using System.IO; 
using System.Drawing; 
using System.Drawing.Imaging; 
using System.Runtime.Serialization.Formatters.Binary; 
using System.Web; 
using System.ServiceModel.Web; 

namespace MyApp 
{ 
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
    public class MyNewApp: IMyNewApp 
    { 
     public void Add(int ID , string PIC) 
      { 
        //my code 
      } 
    } 
} 
} 

我jQueryCode: -

$("#useJSONP").click(function() { 
        var id=4; 
        var pic= "iVBORw0KGgoAAAANSUhEUgAAAC0AAAAtCAYAAAA6GuKaAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABVVJREFUeNrsWVtPG1cQnt09voCNwTaCYkAEVTSJlEogFEr72h/Ql771r5WHSn2r+p5W6WPbhAAOIWkgTQ3EhkCw9+IL9nrt3c6ctRHY3sWAl/ghR7J827PnO3O+mW9mVlhZWYH5+fnPVVX9SVGURcMwmCAI0C/DsiwIBAJ6LBb7PRKJfL+wsGAK6+vrs5lMZj2bzUahz0cikdgbHx+/zzRN+5EAB4JBmJqaBp/f33dgy6enkEm/g8PDwzvBYPBXhrRY5ruYnIJQONyXFvajIQVRgL1UCk5OTr5luq5z0yJvesNB0wLTMvlnSZQAeuQeoZBtUMLbU6cjwIODgzA8HMEvALKqgF7RuZWuPwQQEaMJtiEIL+veehaf7DbqdRMtEoKpyYTNxXIZKuUKLitcA6rAAVL0KBaLoMi5s//cQaO1TNPk1hsdjUEYOe8OwALG2Llv1rVsKyKtTLMOhUIBVEXlm7dMswvQBBh3mZj4DEPNBN5I9NzhREHkls3nNbSszE+JW53WPre+I+g67nQykTg7aq/B0iAayAiWQhxywwbbYXQEbSI3h4eHEfTErYCl48/lclAqlUgCHcE6g7aAU4Es7JWck1/QGhi+QEaweeQucZaD7WLNNtDkeNHoCIQxCnhlXVoDVRgw14FazeC/CVfwmY70iEV7k4aQU7Valyjw4eQDOlmZg6VIcdXRBpoo4ff7egJ6NB7HsFU8C5MowZwOtJnrgHW1tNUjKoRCgyBJElSrVTg+PuLR4apU6Bp0TzM0pAFmZ2Ag8JtY99ZAV6sGHGQOuLMJPRQnT2WuXq9zOe516PQUNGH1ItZ7n1B4Ees/gb6lwfoFCDlsU0ClS3IQj0F36YSIdmRkhBcQVCVp+TxmmnVH4B6DtroCTLL+1dISxOMxMAwDHj36DQpcPaXbAU0Anjx5Cqqm8eM2LaurrTVDY/PdbRpz2v1NRi4nY3KUBeaTLpfuhqWtRtuBPtcxdSWONwflL46giU+U4QWDwRsIigDLy0tcwoXuKQ2RSMQGhLz+YcT4xKsD//+huWHj6Eu3e/cASdSqXg+eYLGBwYuIClnR6iwMFo+YLjzTK0e6PGm93M57vwCuBvp6clLGSPHeeT9aiqSWcyrlXP4fv3qBmBttN0JG86nQEdwbcOWVZga+sVqpToWK5QxFzfSEKJenJt82V4gfMD/gAcHx3Dq39ed7xNMrnJ6dFJUTuqCFm7UqnAzs6/EBkKw9DQEI/gR7jI9vYObkZ3lWeSXU3Nw+PHf8D9e/e42JBIUBthe/vN2XwJN7j5fBOv1WB29g4MDAShWCzB27f/8dN0EjnmtjD1Kba2tuz8Fmy+0+/dtAIkJvFu0urqGtKGcUVrmy/YXacUOuXe/h4wiYGB15Cjuqkyc5NT6hOfpxNx9krxVJTstnJDYTvOp8cRBLDRwG9NjjpFHhGTI068YqFwoUlYxXCWR2fk7Vi7rL5pWX55veByTTO1wA3WxXg8/guPCOl3oCgyjxwUfxV0OHqnRxCUNn7MF6WpVd1+KoB4XwsbGxssm80m0+n0g36XbyzJTmdmZhZZMplEuYEv5+bmfkbw3+m6Huy3Z+NIiRoCfhmNRn9YXFx8878AAwBnfOKk/5TZXAAAAABJRU5ErkJggg=="; 
        var userData = { "ID": id, "pic": pic}; 
        $.ajax({ 
         url: "http://myserver/MyApp.svc/Add?callback=?", 
         type: "POST", 
         data: userData, 
         crossDomain: true, 
         contentType: "application/bson; charset=utf-8", 
         dataType: "jsonp", 
         processdata: true, 
         success: function res(msg) { 
          alert("hello"); 
         }, 
         error: function error(response) { 
          alert("error"); 
          alert(response.responseText); 
          alert(JSON.stringify(response)); 
         } 
        }); 

        }); 

      }); 

請給我一個建議。 謝謝。

回答

1

我發現這個問題。張貼和JSONP不兼容......於是有人用動詞GET,但它有大小limitation..that的爲什麼大的圖像不上傳...

SO我使用CORS和POST方法實現了跨域呼叫,現在我能夠將圖像上傳到服務器...

謝謝..