angular批量上传图片并进行校验
最近做一个项目,有一个批量上传图片,并校验是否是图片和上传最大数量的需求。下面分享一下我的想法,欢迎大神探讨。
首先是在html中支持批量上传和接收图片(mac下设置了之后不存在类型校验),下面上html代码,非常简单的一句话:(我上的是优化后的)
<div class="col">
<div class="col-item w20">
<label class="asterisk">资质证照</label>
</div>
<div class="show-img">
<img ng-repeat="imgEle in imgArrs" ng-src="{{imgEle.src}}" class="yz inbuy">
</div>
<span id="fileName" class="file-type">上传数量:1~5张!<br />支持扩展名:png jpg......</span>
<div class="upload-file" style="margin-left:200px;height:38px;line-height: 38px">
上传文件
<input class="upload-file-img" style="left:200px;height:38px;" type="file" name="file" id="personsFile" multiple="multiple" accept="image/*" onchange="angular.element(this).scope().setImagePreviews()" />
</div>
</div>
<div class="col error-msg" ng-show="customerData.errorMsg.logo" style="margin-top: 0;">
<div class="col-item w50" ng-bind="customerData.errorMsg.logo"></div>
</div>
样式的话我就不再赘述了,大家随意设置哈。(angular.element(this).scope()这个可以省略哈)接下来主要是js里面实现setImagePreviews方法,主要是在选择图片后处理传回来的Files,如下:
// 上传图片
$scope.setImagePreviews = function() {
if (!personsFile.files[0]) {
return;
} else if (personsFile.files.length > 5) {
$scope.customerData.checkInfoMsg = false;
$scope.customerData.errorMsg.logo = "上传图片数量超出范围!";
return;
}
$scope.customerData.errorMsg.logo = "";
$scope.imgArrs = [];
var uploadFiles = [];
for (var i = 0; i < personsFile.files.length; i++) {
var imgFile = personsFile.files[i];
var _name, _fileName;
_name = imgFile.name;
_fileName = _name.substring(_name.lastIndexOf(".") + 1).toLowerCase();
if (_fileName !== "png" && _fileName !== "jpg") {
$scope.customerData.checkInfoMsg = false;
$scope.customerData.purchaser.logo = "";
$scope.customerData.errorMsg.logo = "上传图片格式不正确,请重新上传";
$scope.imgArrs = [];
return;
} else {
uploadFiles.push(imgFile);
var imgSrc = window.URL.createObjectURL(imgFile);
$scope.imgArrs.push({ "src": imgSrc });
}
}
};
运行启动后如果有错误,提示如下:

选择正确,则提示如下:

到此为止,使用angular批量上传图片就结束啦!
angular批量上传图片并进行校验的更多相关文章
- 使用plupload绕过服务器,批量上传图片到又拍云
本文最初发布于我的个人博客:Jerry的乐园 综述 论坛或者贴吧经常会需要分享很多图片,上传图片比较差的做法是上传到中央服务器上,中央服务器再转发给静态图片服务器.而这篇文章讲介绍如何使用pluplo ...
- -Android -线程池 批量上传图片 -附php接收代码
(出处:http://www.cnblogs.com/linguanh/) 目录: 1,前序 2,类特点 3,用法 4,java代码 5,php代码 1,前序 还是源于重构,看着之前为赶时间写着的碎片 ...
- ecshop编辑器FCKeditor修改成KindEditor编辑批量上传图片
ecshop一直使用的编辑器是fck,这个不用多说,相信很多朋友用的很悲剧吧,特别是图片不能批量上传图片. 今天小编就分享一下怎么换掉fck,放上实用的kindeditor,最新ecshop版 ...
- 调用KEditor批量上传图片
调用KEditor批量上传图片: <script charset="utf-8" src="/Keditor/kindeditor.js">< ...
- ASP.net(C#)批量上传图片(完整版)
摘自:http://www.biye5u.com/article/netsite/ASPNET/2010/1996.html 这篇关于ASP.Net批量上传图片的文章写得非常好,偶尔在网上看到想转 ...
- CkEditor批量上传图片(java)
CKEditor上传视频CKEditor批量上传图片flvplayer.swf播放器CKEditor整合包(v4.6.1) ------------------------------------ 最 ...
- django rest framework批量上传图片及导入字段
一.项目需求 批量上传图片,然后批量导入(使用excel)每个图片对应的属性(属性共十个,即对应十个字段,其中外键三个). 二.问题 一次可能上传成百上千张图片和对应字段,原来数据库的设计我将图片和对 ...
- 使用kindeditor来替换ecshop的fckeditor编辑器,让ecshop可以批量上传图片
老杨原创 kindeditor此编辑器可以让ecshop批量上传图片,可以插入代码,可以全屏编辑,可以插入地图.视频,进行更多word操作,设置字体. 步骤一:进入kindeditor的官网,http ...
- 使用WebUploader客户端批量上传图片,后台使用springMVC接收实例
使用WebUploader客户端批量上传图片,后台使用springMVC接收实例 我是搞Java后台的,因为最近主管让用webUploader写客户端,但是在网上找了很多,能够复制就能用的并没有几个, ...
随机推荐
- JS切割图片-滑动门效果
转载请注明来源:https://www.cnblogs.com/hookjc/ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transit ...
- 有手就行4——jenkins项目构建类型(自由风格,maven风格)
有手就行4--构建Maven项目 Jenkins项目构建类型(1)-Jenkins构建的项目类型介绍 Jenkins项目构建类型(2)-自由风格项目构建 Jenkins项目构建类型(3)-Maven项 ...
- JS快速入门(二)
目录 JS快速入门(二) 结构图 BOM window对象 open() window子对象 location对象 history对象(了解) navigator 对象 screen对象 BOM 定时 ...
- node 解决存储xss风险报告
1. 安装 xss模块 npm install xss 2.在 Node.js 中使用 const xss = require("xss"); // 在项目的接口里面添加 let ...
- drop、truncate、delete的区别
(1)DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作. TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独 ...
- tarjan2
反过来调过去,我还是感觉没学明白缩点 讲一个有向图中的所有强连通分量缩成一个点后,构成的新图是一个DAG. 一个点所在的强连通分量一定被该点所在DFS搜索树所包含 树上的边大致分为:树枝边,前向边(从 ...
- Java多态、向上转型、向下转型知识分享(讲解全面)
多态(方法的多态.对象的多态) 方法的多态 重写的多态(重要):子类继承父类,因此子类拥有父类属性和方法,如果子类重写父类方法,那么父类调用该方法的时候就会检查子类是否重写该方法,子类重写了就调用子类 ...
- UVM宏
1.注册宏 // 注册object类 `uvm_object_utils(类名) `uvm_object_parm_utils(类名) `uvm_object_utils_begin(类名) // 注 ...
- 内网安全之横向移动(冰蝎&&msf&&IPC$)
1.冰蝎介绍 冰蝎是一款目前比较流行的Webshell管理工具,在2021年更新的2021.4.20 v3.0 Beta 9 版本中去除了动态密钥协商机制,采用预共享密钥,载荷全程无明文.因其优秀的加 ...
- 1.分类维护-通过Java8 Stream API 获取商品三级分类数据
实体类 @Data @TableName("pms_category") public class CategoryEntity implements Serializable { ...