2014-09-01 52 views
0

我在我的項目中上傳視頻時遇到問題。 如果文件大約25mb然後上傳好,但如果我嘗試上傳更大的文件 - 80 MB,我收到「失敗」。如何上傳超過25 MB的視頻 - c#,javascript

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'); 
    } 

回答

1

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上傳失敗。

+0

這解決了我的問題。非常感謝。 – miniacz 2014-09-02 06:47:05