我已经编写了代码,该代码将从angularjs中获取base64数据并将其传递到.Net中进行二进制转换。我的系统运行正常。我已将代码部署到服务器中。并且字节数组变为NULL,但警报消息已成功执行。但是,如果我将调试器放在控制台中,它可以完美地工作,并且可以控制字节内容。不明白我做错了什么。首先,我在浏览时将fileobject放入rootscope变量中。然后点击“上传”按钮,将文件解析并保存到数据库中。请帮我。 HTML代码
<div class="col-sm-4">
<input filestyle="" file-model = "signatureImage" name="signatureImage" type="file" accept=".png" />
</div>
<div class="col-sm-2">
<button type="button" ng-click="apc.uploadFile()" class="btn btn-info btn-xs"><span class="icon-cloud-upload mr"></span>Upload
</button>
</div>
在Angularjs中,
(function () {
'use strict';
angular
.module('ba')
.directive('fileModel', ['$parse','$rootScope', function ($parse, $rootScope) {
return {
restrict: 'A',
link: function (scope, element, attrs) {
var model = $parse(attrs.fileModel);
var modelSetter = model.assign;
element.bind('change', function () {
scope.$apply(function () {
var UserInfoID = sessionStorage.getItem('UserInfoId');
var DataVariable = "signatureImage_" + UserInfoID;
$rootScope[DataVariable] = element[0].files[0];
//modelSetter(scope, element[0].files[0]);
});
});
}
};
}]);
})();
(function () {
'use strict';
angular
.module('ba')
.controller('APC', APC);
APC.$inject = ['$http', '$scope', 'ngDialog', 'DTOptionsBuilder', '$filter', '$rootScope', '$timeout', '$localStorage' ];
function APC($http, $scope, ngDialog, DTOptionsBuilder, $filter, $rootScope, $timeout, $localStorage) {
vm.uploadFile= function () {
var UserInfoID = sessionStorage.getItem('UserInfoId');
var DataVariable = "signatureImage_" + UserInfoID;
var file = $rootScope[DataVariable];
var UserName = vm.NewPersonInfo.UserName;
var reader = new FileReader();
reader.readAsDataURL(file);
var fileData = reader.result;
fileData = fileData.replace("data:image/png;base64,", "");
var uploadData = {
Name: file.name,
FileType: fileData,
UserInfoID: UserName
}
$http.post('api/AP/USA', uploadData)
.then(
function (response) {
if (response != null && response.data != null) {
alert("Digital Successfully Uploaded.");
}
else {
alert("Digital Successfully Upload Failed!!!");
}
});
};
}
})();
.net代码如下
[HttpPost]
public DataSet USA(apc.ImageModel imageModel)
{
ResultSet dsSaveDoc = null;
imageModel.Bytes = Convert.FromBase64String(imageModel.FileType);
imageModel.FileType = "image/png";
//DB Calling
}
现在,这里imageModel.Bytes
在不放置调试器的情况下变为NULL,如果我将调试器放置在服务器中,则工作正常。
请帮助我。...