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写客户端,但是在网上找了很多,能够复制就能用的并没有几个, ...
随机推荐
- 接口里的default,static方法
我们都知道接口里的变量默认隐含类型是public static final,也是就是说是常量.而方法默认类型是public abstract,所以接口的方法都是抽象方法,但是事实真的是这样吗? 我的P ...
- rsync 远程同步部署——上下行同步
rsync 远程同步部署--上下行同步 1.rsync (Remote Sync,远程同步) : 是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支持增量备份,并保持链接和权限,且采用 ...
- js--事件流、事件委托、事件阶段
前言 JavaScript 与 HTML 的交互是通过事件实现的,事件代表文档或浏览器窗口中某个有意义的时刻.可以使用仅在事件发生时执行的监听器(也叫处理程序)订阅事件.本文总结一下 JS 中的事件相 ...
- 描述nginx中worker_processes、worker_cpu_affinity、worker_rlimit_nofile、worker_connections配置项的含义
worker_processes worker进程的数量,应小于等于cpu核心数,auto为当前主机cpu核心数 work_processes 4 worker_cpu_affinity 配置CPU亲 ...
- linux_14
简述CGI与FASTCGI区别 编译安装基于fastcgi模式的多虚拟主机的wordpress和discuz的LAMP架构 通过loganalyzer展示数据库中的日志
- 帆软报表(finereport)雷达图钻取详细点新页面展示
添加参数栏,季度下拉框的空间名为combobox0 添加雷达图,通过第三页面做跳转 雷达图钻取.cpt为联动钻取的第三页面 添加纬度(所点击钻取的点) 参数 wd 添加季度参数 jd 值为季 ...
- 5、架构--Nginx、搭建超级玛丽游戏
笔记 1.晨考 1.NFS共享文件步骤 - 服务端 [root@backup ~]# yum install nfs-utils rpcbind -y [root@backup ~]# mkdir / ...
- opencv笔记-SimpleBlobDetector
通用的 Blob 检测方法包括:Laplacian of Gaussian(LoG), Difference of Gaussian(DoG), Derterminant of Hessian(DoH ...
- 快速上手 vue3
当前为vue3的基础知识点,为总结b站某视频的知识文章,在刚开始学习时自我保存在语雀,现在分享到博客. 目前找不到原视频文章地址了!!!要有兄弟看到原文地址:欢迎在下面评论! Vue3新的特性 Com ...
- Devops 开发运维高级篇之微服务代码上传和代码检查
Devops 开发运维高级篇之微服务代码上传和代码检查 微服务持续集成(1)-项目代码上传到Gitlab 微服务持续集成(2)-从Gitlab拉取项目源码 微服务持续集成(3)-提交到SonarQub ...