2017-05-02 17 views
0

私は紛失しています... ng-file-uploadは、バイト数が11文字のファイル名で4193813以下であれば完全に動作します。アップロードサイズが1バイト増加すると、ヘッダーはサーバーに出力しますが、ファイルは出力しません。ng-file-uploadファイルサイズが4.5mbを超えた

私のコードは、クライアント側でDanialのサンプルと同じです。バックエンドでは、Microsoft Visual Foxpro WebサーバーであるWest-Wind.com Web Connectionを実行しています。

Fiddlerで見ると、私の作業中のテストと壊れたテストは、content-lengthのバイト数を除いて同じに見えます。

私はIIS7リクエストフィルタリングを見て、デフォルトの30MBサイズが設定されていることを確認しました。また、16mgに設定してみても差はありませんでした。

これはチャンクサイズの制限か、ヘッダーの何かを正しく処理していないのでしょうか?

次回はどこに向かうか考えてください。フィードバックコメントに基づいて

は...、ここに は私のコードの抜粋です:HTMLをここに

Upload.upload({ 
    url: 'postback794.wcsx', 
    fields: oFileFlds, 
    file: files[0] 
}).then(function (response) { 
    // the postback now includes valided uploads 
    console.log('upload complete'); 
}, function (response) { 
    //error 
    console.log('Error status:' + response.status); 
}, function (evt) { 
    var progressPercentage = parseInt(100.0 * evt.loaded/evt.total); 
    console.log('progress: ' + progressPercentage + '% ' + evt.config.file.name); 
    _this.DisplayMessage = 'progress: ' + progressPercentage + '% ' + evt.config.file.name; 
}); 

がされる([0]以下の可能なファイルではない、今のところ想定し、複数のファイル):

サーバー上で
<button class="btn btn-primary pull-left" 
    multiple 
    ngf-select 
    accept="text/plain, image/*, application/pdf, application/msword" 
    ng-model="VendorsController.AddlDocsFile" 
    title="Click here to upload one or more documents."> 
Upload Document(s) 
    <i class="fa fa-upload" style="font-size:14px; margin:3px;"></i> 
</button> 

:私はVFPコードを仮定するつもりです

DO WHILE !FEOF(lhFile) 
    lcCommandLine = lcCommandLine + FREAD(lhFile,16484) 
    ENDDO 

はunfamilですiarの場合、FREADは、ハンドル(lhFile)で指定されたファイルを何バイト(この場合は16484)読み込む低レベルのコマンドです。ファイルの終了マーカーに達すると、FREADが終了し、DOループが終了します。 lcCommandLineはヒット全体を解析する準備ができているはずです。

ng-file-uploadが動作している場合は、すべてのテストアップロードを見ることができます。バイト数がブレークポイントを超えている場合ではなく、ファイルアップロードデータなしでlcCommandLine値が切り捨てられます(HTTP_CONTENT_LENGTH = 906)。

+0

コードに起因する問題について質問するときに、人々が問題を再現するために使用できるコードを提供すると、より良い回答が得られます。 – georgeawg

+0

コードを参考にする必要があることを指摘してくれてありがとうございました。何が間違っていると思われるのでしょうか?ありがとうございました。 –

+0

'ng-file-load'ライブラリを使わずにファイルをアップロードしようとすると、容量の問題がライブラリによって引き起こされているかどうかを確認することをお勧めします。 [ng-modelと$ http'のアップロードファイル](http://stackoverflow.com/a/43778329/5535245)を参照してください。 – georgeawg

答えて

0

ASP.NETがインストールされている場合、IISに関連する問題がありました。

web.configファイルで2つの設定を行う必要があります。最大ファイルサイズを制御します。設定は次のとおりである:(要求のフィルタリング下IIS UIを介して行うことができるsystem.webserver構成の範囲内である。この第一の設定)

<configuration> 
<system.webServer> 
    <security> 
     <requestFiltering> 
     <requestLimits maxAllowedContentLength="500000000" /> 
     </requestFiltering> 
    </security> 
<system.webServer> 
</configuration> 

これはでもある第二ものですsystem.webの設定:

<configuration> 
<system.web> 
    <httpRuntime maxRequestLength="500000000" executionTimeout="120" /> 
</system.web> 
<configuration> 

あなたが探している方向については、Rick Strahlに感謝します...!

関連する問題