如何解决将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 =实际文件大小)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。