ng-file-upload文件大小超过4.5mb

时间:2017-05-02 20:37:56

标签: angularjs ng-file-upload westwind

我在丢失的... ng-file-upload工作完美,只要字节数等于或小于4193813,带有11个字符的文件名。如果上传大小增加一个字节,则标头会将其发送到服务器,但不会发送到文件。

我的代码在客户端与Danial的样本完全相同。在后端,我正在运行West-Wind.com Web Connection,这是一个Microsoft Visual Foxpro Web服务器。

与Fiddler一起看,除了内容长度的字节数外,我的工作和破坏的测试看起来都是相同的。

我查看了IIS7请求过滤,并查看默认的30mb大小已设置。也尝试将其设置为16mg并没有任何区别。

我想知道这是否是块大小限制和/或我没有正确处理标题中后端的内容......但这只是猜测。

任何想到下一步的想法都会非常感激。

...基于反馈评论, 这是我的代码片段:(假设现在,多个文件不可能是下面的文件[0])

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

这是HTML:

<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>

在服务器上:

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

我假设VFP代码不熟悉,FREAD是一个低级命令,它读取句柄(lhFile)指定的文件一定数量的字节(在本例中为16484)。当到达文件结束标记时,FREAD终止并且DO循环结束。然后lcCommandLine应该准备好解析整个命中。

在ng-file-upload工作的情况下,我可以看到所有的测试上传。如果字节数高于断点,则不会出现lcCommandLine值,而没有任何文件上传数据(HTTP_CONTENT_LENGTH = 906)。

1 个答案:

答案 0 :(得分:0)

安装ASP.NET时,问题与IIS有关。

必须在web.config文件中进行两项设置。它们控制最大文件大小。设置如下:

(配置system.webserver中的第一个设置可以通过请求过滤下的IIS UI进行。)

<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指导您去哪里寻找......!