', //name:testReport 与接口字段相对应。
replace: true,
link: function(scope, ele, attrs) {
ele.bind('click', function() {
$('#file').val('');
});
ele.bind('change', function() {
scope.file = ele[0].children[1].files;
if(scope.file[0].size > 52428800){
alert("图片大小不大于50M");
scope.file = null;
return false;
}
scope.fileName = scope.file[0].name;
var postfix = scope.fileName.substring(scope.fileName.lastIndexOf(".")+1).toLowerCase();
if(postfix !="jpg" && postfix !="png"){
alert("图片仅支持png、jpg类型的文件");
scope.fileName = "";
scope.file = null;
scope.$apply();
return false;
}
scope.$apply();
scope.reader = new FileReader(); //创建一个FileReader接口
console.log(scope.reader);
if (scope.file) {
//获取图片(预览图片)
scope.reader.readAsDataURL(scope.file[0]); //FileReader的方法,把图片转成base64
scope.reader.onload = function(ev) {
scope.$apply(function(){
scope.thumb = {
imgSrc : ev.target.result //接收base64,scope.thumb.imgSrc为图片。
};
});
};
}else{
alert('上传图片不能为空!');
}
});
}
};
});
myTestCtrl.controller("myTestCtrl", function($scope, $http) {
//导入图片
$scope.saveClick = function () {
//禁用按钮
$scope.imgDisabled = true;
$scope.submitDisabled = true;
var url = '';//接口路径
var fd = new FormData();
fd.append('testReport', $scope.file[0]);//参数 testReport=后台定义上传字段名称 ; $scope.file[0] 内容
$http.post(url, fd, {
transformRequest: angular.identity,
headers: {
'Content-Type': undefined
}
}).success(function (data) {
if(data.code != 100) {
alert(JSON.stringify('文件导入失败:'+files.files[0].name+',请重新上传正确的文件或格式'));
}else{
alert(JSON.stringify('文件导入成功:'+files.files[0].name));
}
//恢复按钮
$scope.imgDisabled = false;
$scope.submitDisabled = false;
}).error(function (data) {
alert('
服务器错误,文件导入失败!');
//恢复按钮
$scope.imgDisabled = false;
$scope.submitDisabled = false;
});
};
});
以上是“AngularJs如何实现上传前预览图片”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
分享文章:AngularJs如何实现上传前预览图片
网页链接:
http://kswsj.cn/article/psshdo.html