HTML代码

<form id="form1" class="layui-form layui-form-pane" action="{:url('')}" enctype="multipart/form-data">

    <div class='layui-form-item'>
<label class="layui-form-label">游戏截图</label>
<div class='layui-input-block'>
<div class='layui-box layui-upload-button'>
<input type='file' id='picsInput' name='picsInput' multiple='multiple' onchange='getPicture(this)'>
<input type='hidden' id='pics' name='thumb3' value='{$info.thumb3|default=""}'>
<span class='layui-upload-icon'><i class='layui-icon'></i>选择图片</span>
</div>
<input type='button' class='layui-btn layui-btn-normal' onclick='do_upload()' value='立即上传'/>
<div id='showimg'>
{volist name="thumb3_arr" id="vo"}
<img src="{$vo}" class="img-thumbnail" />
{/volist}
</div>
</div>
</div> </form>
<script type = 'text/javascript' >
var layer, tbl_img = document.getElementById('showimg'),
imgObjs = {};
layui.use(['layer', 'form'],
function() {
layer = layui.layer;
var form = layui.form();
});
function getPicture(obj) {
var imgs = obj.files;
tbl_img.innerHTML = '';
for (var i = 0; i < imgs.length; i++) {
if (!imgs[i]) return;
if (! (imgs[i].type.indexOf('image') == 0 && imgs[i].type && /\.(?:jpg|png|gif)$/.test(imgs[i].name))) {
layer.msg('图片只能是jpg,gif,png');
return;
}
var reader = new FileReader();
reader.readAsDataURL(imgs[i]);
reader.onload = function(e){
tbl_img.innerHTML += '<img src='+this.result+' alt="" class="not_upload" />'
}
}
imgObjs = obj.files;
} function do_upload() {
var imgsxxx = new Array();
tbl_img.innerHTML = '';
layui.use(['jquery'], function(){
var $ = layui.jquery //重点处
for(var i = 0, ilen = imgObjs.length; i < ilen; i++) {
var file = imgObjs[i];
var formdata = new FormData();
// 上传到服务器的字段名称
formdata.append('files', file);
$.ajax({
type: 'post',
url: "/kbcms/admin_upload/upload",
data: formdata,
cache: false,
async:false,
processData: false,
contentType: false,
dataType:'json'
}).success(function (data) {
var tmp = JSON.parse(data);
imgsxxx.push(tmp.url);
tbl_img.innerHTML += '<img src='+ tmp.url +' alt="" class="img-thumbnail" />'
}).error(function () {
alert("上传失败");
});
}
var str = JSON.stringify( imgsxxx );
$('#pics').val(str);
layer.msg('上传成功!');
});
}
</script>
<style>
#showimg{}
#showimg img { width: 120px; height: auto; }
#showimg .not_upload { border: 1px #0c9076 solid; padding: 4px; margin: 4px;}
</style>

纯JS实现多图片上传(在layui框架中)的更多相关文章

  1. js基础进阶--图片上传时实现本地预览功能的原理

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 最近在项目上加一个图片裁剪上传的功能,用的是cropper插件,注意到选择本地图片后就会有预览效果,这里整理一下这种预览效 ...

  2. 原生JS实现异步图片上传(预览)

    效果 实现过程分为两步 1. 用户点击添加后通过 H5文件读取 FileReader对象以DataURL的格式读取图片 2. 通过FormData对象生成表单数据,通过ajax上传到后台 HTML & ...

  3. Ajax异步上传在SSM框架中的应用

    最近在做毕业设计,由于毕设中要实现图片上传和视频上传的功能.突然发现原来的Form表单中的file已经满足不了我了,于是在一番折腾之后终于让我找到了一个简便的上传方式.下面来和大家分享一下我的过程. ...

  4. 阿里云使用js 实现OSS图片上传、获取OSS图片列表、获取图片外网访问地址(读写权限私有、读写权限公共);

    详情请参考:https://help.aliyun.com/document_detail/32069.html?spm=a2c4g.11186623.6.763.ZgC59a 或者https://h ...

  5. 阿里云OSS图片上传plupload.js结合jq-weui 图片上传的插件

    项目中用到了oss上传,用的plupload,奈何样式上不敢恭维,特别是放在移动端上使用.于是自己把它移植到了jq weui的上传图片组件上. 更改:选择照片后确认即及时上传至oss服务器,不限制上传 ...

  6. js canvas压缩图片上传

    $('input[type="file"]').on('change',function(){ var files = !!this.files ? this.files : [] ...

  7. 从零开始学习Node.js例子三 图片上传和显示

    index.js var server = require("./server"); var router = require("./router"); var ...

  8. 百度UEditor在线编辑器的配置和图片上传

    前言 最近在项目中使用了百度UEditor富文本编辑器,配置UEditor过程中遇到了几个问题,在此记录一下解决方案和使用方法,避免以后使用UEditor出现类似的错误. 基本配置 一.下载UEdit ...

  9. PHP实现多图片上传

    PHP实现多图片上传 今天在工作中遇到了一个需求:一个表单实现多个上传图片,类似于QQ空间上传照片的模式.即:可以一次性上传多个图片,但是封面图片只有一个. 最先,最重要的事,在服务器上对文件进行读写 ...

随机推荐

  1. JAVA笔记7-Object类之toString方法和equals方法

    位于rt.jar\java\lang\Object.class Object类是所有Java类的根基类(Java中只有一个根基类,C++中有多个).如果在类声明中未使用extends关键字指明其基类, ...

  2. Python CGI编程Ⅹ

    检索Cookie信息 Cookie信息检索页非常简单,Cookie信息存储在CGI的环境变量HTTP_COOKIE中,存储格式如下: 以下是一个简单的CGI检索cookie信http://www.we ...

  3. [转帖]H5 手机 App 开发入门:技术篇

    H5 手机 App 开发入门:技术篇   http://www.ruanyifeng.com/blog/2019/12/mobile-app-technology-stack.html 阮一峰老师的文 ...

  4. redis过期策略、内存淘汰策略、持久化方式、主从复制

    原文链接:https://blog.csdn.net/a745233700/article/details/85413179 一.Redis的过期策略以及内存淘汰策略:1.过期策略:定期删除+惰性删除 ...

  5. 批处理(.bat)文件使用笔记

    color: 一位参数时→改变字体颜色,例如 color a 就是修改字体为亮绿色. 两位参数时→改变背景和字体颜色,第一位参数为背景颜色值,第二位参数为字体颜色值. color [BF] B:背景颜 ...

  6. Windows Server 快速生成免费SSL证书 (letsencrypt)

    最近官网需求部署个SSL证书,一番操作后把借鉴的网站与实际过程记录下来 Let's Encrypt,官网是https://letsencrypt.org/,它是一个由各大公司赞助的公益组织: 有趋势有 ...

  7. HyperSQL 链接参数中文件的路径

    如果我们在系统中配置下面的连接参数: spring.datasource.url=jdbc:hsqldb:file:~/db/cwiki-us-jpetstore 我们怎么知道 hsqldb 数据库的 ...

  8. 【BZOJ4259】 残缺的字符串

    Description 很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串A和B,其中A串长度为m,B串长度为n.可当你现在再次碰到这两个串时,这两个串已经老化了,每个串都有不同 ...

  9. Python惯例

    “惯例”这个词指的是“习惯的做法,常规的办法,一贯的做法”,与这个词对应的英文单词叫“idiom”.由于Python跟其他很多编程语言在语法和使用上还是有比较显著的差别,因此作为一个Python开发者 ...

  10. [LOJ2538][PKUWC2018]Slay the Spire:DP

    分析 学会新姿势!我们可以通过调整DP顺序来体现选取物品的优先顺序! 显然选取强化牌的最优策略是倍数从高到低,能选就选,最多选\(k-1\)张,选取攻击牌的最优策略是伤害从高到低,尽量少选,但最少选\ ...