将文件(图像、音频、视频)的确切存储大小从Angularjs保存到WepApi



我试图上传2mb文件,但$scope.selectedFile.base64长度超过2mb,但我想保存相同文件大小的

Html

<input type="file" id="fileUpload" name="files" ng-model="selectedFile" base-sixty-four-input> 
<button  ng-click="vm.saveFile()"> Upload </button>

Js

$scope.saveFile = function(){
var data = {
fileType: $scope.selectedFile.filetype,
fileName: $scope.selectedFile.filename,
fileBase64 : $scope.selectedFile.base64,
};
}
myService.uploaddDocument(data).then(function (response) {
}

我在这个方法中尝试了另一种方法,(uploadFile.size和event.target.result.split(','([1].length(大小都是不同的

Html

<input type="file" id="fileUpload" name="files" onchange="angular.element(this).scope().fileChanged(event)">

Js

$scope.fileChanged = function (files) {
var uploadFile = document.getElementById("fileUpload").files[0];
console.log(uploadFile.size);
var fileReader = new FileReader();
fileReader.onload = function (event) {
console.log(event.target.result.split(',')[1].length);
}
}

所以,请告诉我一个保存相同文件大小的解决方案

当(任意(base64字符串在c#中转换为byteArray时,byteArray的大小等于原始文件的大小。

C#:

Convert.FromBase64String(base64);

我们可以从base64计算文件的实际大小(比如base64长度*0.75=实际文件大小(