2017-08-10 75 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

相关问题