簡體   English   中英

如何上傳大於25 MB的視頻-C#,JavaScript

[英]how to upload video bigger than 25 mb- c#, javascript

我在項目中上傳視頻時遇到問題。 如果File的大小約為25mb,則可以正常上傳,但是如果我嘗試上傳較大的文件-80 mb,則會收到“失敗”消息。

Web.config文件:

<httpRuntime maxRequestLength="104857600" executionTimeout="3600" />

我在查看文件中的功能:

function createVideoUploader() {
        videoTempName = '@Guid.NewGuid().ToString().Replace("-", "").Substring(0, 13)';
        var uploader = new qq.FileUploader({
            element: document.getElementById('video-uploader'),
            allowedExtensions: ['3g2', '3gp', 'avi', 'f4v', 'flv', 'm4v', 'mov', 'mp4', 'mpeg', 'mpg', 'mts', 'ogv', 'webm', 'wmv'],
            sizeLimit: 838860800, //304857600,
            action: '@Url.Action("Upload", "Upload")',
            params: { 'fileTempName': videoTempName },
            multiple: false,
            onSubmit: function (id, fileName) {
                $('div.qq-upload-button').hide();
                $(".qq-upload-drop-area").remove();
            },
            onCancel: function() {
                createVideoUploader();
            },
            onComplete: function (id, fileName, responseJSON) {
                if(responseJSON.success == false) {
                    uploaded = false;
                    $("#videoUploadedFail").show(); // show video error
                    var postData = { 'fileTempName': videoTempName };
                    $.ajax({
                        type: 'POST',
                        url: '@Url.Action("DeleteTemp", "Upload")',
                        data: $.param(postData,true),
                        async: false
                    });
                } else if(responseJSON.success == true) {
                    uploaded = true;
                    $('div.qq-upload-button').hide();
                    var postData = { 'fileTempName': videoTempName };
                    $.post("@Url.Action("PreprocessVideo", "Upload")", $.param(postData,true),
                        function (data) {
                            appendSuccess("#flowVideo");
                            totalTime = secsToTime(data.seconds); // seconds to time
                            $("#duration").html(totalTime);
                            $(".timeText").html(totalTime);
                            $("#orderSlides").css("display", "inline-block");
                        });
                  }
            }
        });
        if (!($.browser.msie))
            $('span.qq-upload-span').append(' or drop file here');
    }

IIS 7+現在需要你還設置了新requestFiltering/requestLimits/maxAllowedContentLength屬性,這有一個默認值maxAllowedContentLength30000000這將適合你所看到的(這大約是28.4MB)。

這應該與httpRuntime/maxRequestLength屬性結合設置,以確保IIS(通過以字節為單位的maxAllowedContentLength )和ASP.NET(以以千字節為單位的maxRequestLength )都一致。

您應該能夠通過應用程序web.config的requestLimits元素更改此設置,以允許更合適的最大值:

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

不過要記住的一件事是,請求過濾是在服務器端執行的,一旦內容長度超過了限制-因此,沒有什么可阻止用戶嘗試上傳150MB的操作,只是一旦100.1MB失敗,它就會失敗上傳。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM