我在丢失的... 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)。
答案 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指导您去哪里寻找......!