angularjs实现多张图片上传并预览功能
发布时间 - 2026-01-10 23:16:03 点击率:次本文实例为大家分享了angularjs上传多张图片并预览的具体代码,供大家参考,具体内容如下

directive.js
/*
* 多图片上传及预览指令(需指定图片类名)
*
*/
angular.module('routerModule').directive('fileModel', ['$parse', 'fileReader', function($parse, fileReader) {
return {
restrict:'A',
link:function(scope, element, attrs, ngModel) {
var model = $parse(attrs.fileModel);
var modelSetter = model.assign;
var imgviewID = attrs["imgViewId"];
var imgView = angular.element(document.querySelector("."+imgviewID));
element.bind('change', function(event) {
scope.$apply(function() {
modelSetter(scope, element[0].files[0]);
});
//附件预览
scope.file = (event.srcElement || event.target).files[0];
fileReader.readAsDataUrl(scope.file, scope).then(function(result) {
imgView.attr("src",result);
});
});
}
}
}]);
angular.module('routerModule').factory('fileReader', ["$q", "$log", function($q, $log) {
var onLoad = function(reader, deferred, scope) {
return function() {
scope.$apply(function() {
deferred.resolve(reader.result);
});
}
}
var onError = function(reader, deferred, scope) {
return function() {
scope.$apply(function() {
deferred.reject(reader.result);
});
};
};
var getReader = function(deferred, scope) {
var reader = new FileReader();
reader.onload = onLoad(reader, deferred, scope);
reader.onerror = onError(reader, deferred, scope);
return reader;
};
var readAsDataURL = function(file, scope) {
var deferred = $q.defer();
var reader = getReader(deferred, scope);
reader.readAsDataURL(file);
return deferred.promise;
}
return {
readAsDataUrl: readAsDataURL
};
}
]);
html关键代码
<section class="infogroup">
<h4>法人证件</h4>
<div class="row relatedCard">
<div class="col-md-4 txtcenter">
<p>身份证正面</p>
<div><img ng-src="showImg/{{dealer.idCardFace}}" class="idCardFace" enlarge-pic/></div>
<span class="btn btn-file btn btn-xs btn-primary btn-editable picEdit"><i class="fa fa-edit"></i> 点击编辑
<input type="file" file-model="idCardFace" img-view-id="idCardFace" />
</span>
</div>
<div class="col-md-4 txtcenter">
<p>身份证反面</p>
<div><img ng-src="showImg/{{dealer.idCardBack}}" class="idCardBack" enlarge-pic/></div>
<span class="btn btn-file btn btn-xs btn-primary btn-editable picEdit"><i class="fa fa-edit"></i> 点击编辑
<input type="file" file-model="idCardBack" img-view-id="idCardBack" />
</span>
</div>
</div>
</section>
controller.js中发送到后台的数据
$scope.postData = {
dealerId: $scope.dealer.dealerId,
companyName: $scope.dealer.companyName,
companySize: $scope.dealer.companySize,
idCardFace: angular.element(document.querySelector(".idCardFace"))[0].src,
idCardBack: angular.element(document.querySelector(".idCardBack"))[0].src
};
$http.post('updateDealerCertificate',$scope.postData).success(function(data){
<!-- 成功执行代码 -->
});
预览如下:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# angularjs上传多张图片并预览
# angularjs上传图片并预览
# angularjs多张图片上传预览
# Javascript图片上传前的本地预览实例
# js图片上传前预览功能(兼容所有浏览器)
# 图片上传之前检查大小、尺寸、格式并预览的js代码
# js实现图片上传预览原理分析
# Vue.js 2.0 移动端拍照压缩图片上传预览功能
# js前端实现多图图片上传预览的两个方法(推荐)
# 兼容IE和FF的图片上传前预览js代码
# javascript 图片上传预览-兼容标准
# js实现前端图片上传即时预览功能
# js实现图片上传并预览功能
# 上传
# 多图
# 大家分享
# 具体内容
# 大家多多
# 中发
# 多张
# bind
# querySelector
# event
# change
# apply
# document
# assign
# modelSetter
# model
# imgView
# imgViewId
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
个人网站制作流程图片大全,个人网站如何注销?
标题:Vue + Vuex 项目中正确使用 JWT 进行身份认证的实践指南
JS去除重复并统计数量的实现方法
Laravel怎么清理缓存_Laravel optimize clear命令详解
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
JavaScript如何实现错误处理_try...catch如何捕获异常?
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
Laravel模型事件有哪些_Laravel Model Event生命周期详解
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
Android利用动画实现背景逐渐变暗
佛山企业网站制作公司有哪些,沟通100网上服务官网?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
Linux后台任务运行方法_nohup与&使用技巧【技巧】
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
Laravel如何生成API文档?(Swagger/OpenAPI教程)
Swift开发中switch语句值绑定模式
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
Android使用GridView实现日历的简单功能
Laravel如何从数据库删除数据_Laravel destroy和delete方法区别
实例解析Array和String方法
JavaScript常见的五种数组去重的方式
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
javascript中闭包概念与用法深入理解
如何在阿里云ECS服务器部署织梦CMS网站?
如何在建站之星绑定自定义域名?
,南京靠谱的征婚网站?
Laravel如何处理和验证JSON类型的数据库字段
javascript日期怎么处理_如何格式化输出
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
北京企业网站设计制作公司,北京铁路集团官方网站?
Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控
高端网站建设与定制开发一站式解决方案 中企动力
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
js实现获取鼠标当前的位置
微信小程序 input输入框控件详解及实例(多种示例)
,怎么在广州志愿者网站注册?
JavaScript中的标签模板是什么_它如何扩展字符串功能
佛山网站制作系统,佛山企业变更地址网上办理步骤?
Laravel如何实现API速率限制?(Rate Limiting教程)
如何在建站宝盒中设置产品搜索功能?
C++用Dijkstra(迪杰斯特拉)算法求最短路径
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
高端企业智能建站程序:SEO优化与响应式模板定制开发
上一篇:laravel怎么创建函数
上一篇:laravel怎么创建函数

