2017-08-10 16 views
0

私はangularJSを使用して画像アップロードページを実装しました。ASP.NET MVCのMaxJsonLength例外JavaScriptSerializerのAngularJS

htmlバインディング部分とアンギュラーコントローラー部分がうまく動作します。しかし、Ajax呼び出しを使用して、アップロードされたイメージ(64基本文字列)をサーバー側に渡すときに問題があります。 それは「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に増えます。

このようにファイルコンテンツをアップロードする代わりに、マルチパート実装を使用してください。私は複数のファイルのアップロードについての回答を与えています。ここで確認できますUploading Excel File in MVC using angularjs. HttpPostedFileBase is empty

関連する問題