Я использую Angular js и контроллер API c# для загрузки файлов, у меня есть элемент управления загрузкой файлов,
cs html
<input id="file" name="file" type="file"
ng-file-model="files" ng-model="file" multiple />
Я могу загрузить файлы размером 1 МБ, 2 МБ, передав filebytestring из службы. js в контроллер API после внесения изменений в web.config,
web.config
<httpRuntime targetFramework="4.6.1" maxRequestLength="1048576" executionTimeout="3600"/>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1073741824" />
</requestFiltering>
</security>
Но когда я пытаюсь загрузить файл размером более 3 МБ, он не работает.
Контроллер. js
//Directive
app.directive('ngFileModel', ['$parse', function ($parse) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var model = $parse(attrs.ngFileModel);
var isMultiple = attrs.multiple;
var modelSetter = model.assign;
element.bind('change', function () {
var values = [];
angular.forEach(element[0].files, function (item) {
var reader = new FileReader();
reader.readAsArrayBuffer(item);
reader.onload = function () {
var arrayBuffer = reader.result
var bytes = new Uint8Array(arrayBuffer);
var fileByteString = JSON.stringify(bytes);
var value = {
// File Name
name: item.name,
//File Size
size: item.size,
//File URL to view
url: URL.createObjectURL(item),
// File Input Value
_file: item,
// File byte string
fileByteString: fileByteString
};
values.push(value);
}
});
scope.$apply(function () {
if (isMultiple) {
modelSetter(scope, values);
} else {
modelSetter(scope, values[0]);
}
});
});
}
};
}]);
сервис. js
FormService.uploadFile = function (FileModel) {
var requestURL = "/api/FileModelAPI/UploadFile";
var uploadFile = $http({
url: requestURL,
method: 'POST',
data: FileModel,
headers: { "accept": "application/json;odata=verbose" },
});
return (uploadFile.then(handleUploadFileSuccess, handleUploadFileError));
}
function handleUploadFileSuccess(response) {
return response.data;
}
function handleUploadFileError(xhr) {
console.log(xhr);
}
API-контроллер
[HttpPost]
public ERFileResponseModel UploadFile([FromBody] FileModel request)
{
ERFileResponseModel response = new ERFileResponseModel();
try
{
FileManager fileMgr = new FileManager();
response = fileMgr.AddFile(request);
}
catch (Exception ex)
{
}
return response;
}
Заранее спасибо.