在做后台管理的时候,遇到这样一个需求,实现多张图片上传并按选中的顺序显示。PS:图片上传的时候是即时上传到服务器,后台返回图片在服务器上的地址,在最后点击提交按钮的时候,把地址传给后端写入数据库即可。

1、input标签,accept='image/*'上传图片格式只要是image就行,multiple实现文件可以多选

<input type="file" id="add-pic2" accept="image/*" multiple>

2、监听选中事件

       $("#add-pic2").on("change", function () {
// if (pic_banner.length >= 10 || pic_banner.length + this.files.length >= 10) {
// return swal("最多10张图片");
// }
//递归上传
var files = this.files
files.length && diguiAjax(this.files, 0, this.files.length, function (res, i) {
var obj = {
pic: res.data.list
};
pic_banner.push(obj);
var bannerHtml = "";
bannerHtml = `<div class="pic-wrap pull-left"><span class="closeX" data-index="${res.data.list}">x</span><img src="${res.data.list}" alt=""></div>`;
$(".banner-wrap").append(bannerHtml);
if (i >= files.length) {
document.getElementById('add-pic2').value = null
}
})
});
//递归上传banner图片
function diguiAjax(files, j, length, cb) {
var ele = files[j];
//压缩图片 lrz压缩图片
lrz(ele).then(function (rst) { $post({
url: api_www + "/upload_img/uploadImg",
data: {
token: token,
img: rst.base64,
is: 1
},
callback: function (res) {
if (res.code == 1) {
cb(res, j)
if (++j < length) {
diguiAjax(files, j, length, cb)
}
}
}
});
})
}

附:如果选择图片先保存在本地,不上传,点击提交按钮统一上传,核心代码如下,

imgObjPreview1是要显示图片的div
imgObjPreview1.src = window.URL.createObjectURL(this.files[0]);

最新文章

  1. JAVA 打出jar包
  2. &lt;!DOCTYPE&gt; 的理解
  3. Android Studio 和 Gradle
  4. xxx
  5. 在远程系统上开发 SharePoint 应用程序
  6. android 解析XML方式(二)
  7. redis的lists类型
  8. SQL SERVER数据导入
  9. 【转】vim 修改tab为四个空格
  10. Go语言简单的TCP编程
  11. Anton and School
  12. 做一个合格的Team Leader -- 基本概念
  13. python webdriver api-对启动的火狐浏览器添加配置
  14. bayer格式
  15. Page Cache, the Affair Between Memory and Files.页面缓存-内存与文件的那些事
  16. 解决org.apache.velocity.exception.ResourceNotFoundException: Unable to find resource
  17. BitAdminCore框架更新日志20180522
  18. [控件] 动态实时设置CAShapeLayer贝塞尔曲线的坐标点
  19. SICP读书笔记 3.5
  20. Opencv+pycharm+anaconda配置

热门文章

  1. [编程基础] Python lambda函数总结
  2. 能将三次握手讲到这个程度,不给你offer给谁!
  3. idea 函数名灰色
  4. python之路52 ORM查询、ORM事务、查询优化、常用字段及参数、ajax方法
  5. Go+beego接入OSS上传
  6. [C++]C++11右值引用
  7. Android Volley 基本使用
  8. 【力扣】反转链表I和II(迭代和递归)
  9. Python面向对象(上)
  10. 前端必备基础知识之--------原生JS发送Ajax请求