2017-08-10 35 views
0

我已經使用angularJS實現了圖片上傳頁面。JavaScriptSerializer中ASP.NET MVC AngularJS中的MaxJsonLength異常

html綁定部分和anguler控制器部分工作fine.but問題是當我用上傳圖像(64基本字符串)傳遞對象到服務器端使用Ajax調用。 它會給出一個錯誤的東西像「序列化或使用JSON JavaScriptSerializer反序列化過程錯誤。字符串的長度超過上maxJsonLength屬性設置的值.....

我曾嘗試加入

<system.web.extensions> 
<scripting> 
    <webServices> 
    <jsonSerialization maxJsonLength="2147483647"/> 
    </webServices> 
</scripting> 

,但它不工作。

這是我的下面角服務,

以我角服務 「purchaseOrder的」 是對象包括與的OrderId,價錢,ImageUploaded(圖像64基本字符串)

'use strict'; 
appForm.factory('CheckoutService', function ($http) { 
function CompleteCheckout(purchaseOrder) { 
    return $http({ 
     method: 'POST', 
     url: '/Checkout/CompleteCheckout', 
     data: { "objPurchaseOrder": purchaseOrder } 
    }).then(function (results) { 
     return results.data; 
    }) 
}; 
return { 
     GetCartItems:GetCartItems 
}}); 

回答

1

我認爲第一問題在於你的方法。你不應該用base64上傳文件。如果你這樣做,那麼它會影響你的性能和網絡使用。實際上,當你用base64轉換文件時,文件大小會自動增加到33%。所以如果你有一個10MB的文件,那麼它會增加到13MB。

因此,不是像這樣上傳文件內容,而是使用multipart實現。我已經給出了有關多部分文件上傳的答案。您可以點擊這裏查看Uploading Excel File in MVC using angularjs. HttpPostedFileBase is empty