20

asp.net mvc Web サイトに大きなファイル (600 MB から 4 GB) をアップロードする方法が必要です。現在、私はswfuploadを使用しています。十分に機能しますが、1 回の大きなアップロードで送信されるため、Web サーバーに大きな打撃を与えます。さらに、web.config で設定して、その巨大なファイルを許可する必要があり、これは大きなセキュリティ リスクです。過去に Web フォームの開発を行っていたとき、ファイルをチャンクに分割して個別にアップロードするNeatuploadを使用していました。チャンクアップしてアップロードするmvcで大きなファイルをアップロードする方法を探しています。どうすればこれを行うことができるかについてのアイデアはありますか?

4

4 に答える 4

8

Silverlight ファイルのアップロード

于 2009-04-19T13:04:35.767 に答える
7

サーバー側でアップロードを処理するために、DarrenJohnstoneのASP.NETファイルアップロードモジュールを使用することになりました。クエリ文字列でGUIDを取得できるように少し変更しましたが、一時ファイルをそのGUID名に保存します。

サーバーに到着したときにファイルを保存し、投稿されたデータからファイルを削除して、指定されたコントローラーのアクションに送信するので、便利でした。

于 2009-04-20T20:00:02.390 に答える
2

私の見解での例:

<input id="FileGUID" name="FileGUID" type="hidden" value="f632c00b-9b66-4716-8075-79df63b780fb" />
    <input type="file" id="FileUpload1" name="fileUpload1" />

    <script type="text/javascript">
        var UploadUrl = '/Video/AsyncUpload?FileGUID=f632c00b-9b66-4716-8075-79df63b780fb';
        $(function() {
            $("#FileUpload1").makeAsyncUploader({
                upload_url: UploadUrl,
                flash_url: '/Content/Flash/swfupload.swf',
                button_image_url: '/Content/Images/blank-button.png',
                button_text: '<font face="Helvetica, Arial" size="13pt" color="#ffffff">Upload File</font>',
                disableDuringUpload: 'input[type="submit"]',
                file_size_limit: '8024 MB',
                button_text_top_padding: 2
            });
        });
    </script>

次に、このページの実際の保存アクションで、asyncupload アクションが FileGUID に基づいてファイルを保存したファイルを探します。

于 2009-09-18T16:16:40.957 に答える
1

SignalR の実装例は、こちらにあります

これには、HttpContext.Request.GetBufferlessInputStream() を操作するための機能も含まれており、完全にアップロードされる前に投稿データの操作を開始できます。

于 2013-03-09T01:22:38.547 に答える