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. 如何理解react中的super() super(props)

    class WebSite extends React.Component { constructor() { super(); this.state = { name: "菜鸟教程&quo ...

  2. 直通BAT必考题系列:深入详解JVM内存模型与JVM参数详细配置

    VM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核. BAT必考JVM系列专题 1.JVM内存模型 2.JVM垃圾 ...

  3. CF1101D GCD Counting 点分治+质因数分解

    题意:求最长的树上路径点值的 $gcd$ 不为 $1$ 的长度. 由于只要求 $gcd$ 不为一,所以只要 $gcd$ 是一个大于等于 $2$ 的质数的倍数就可以了. 而我们发现 $2\times 1 ...

  4. TTTTTTTTTTT POJ 2749 修牛棚 2-Sat + 路径限制 变形

    Building roads Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7019   Accepted: 2387 De ...

  5. [LibreOJ 3124]【CTS2019】氪金手游【容斥原理】【概率】【树形DP】

    Description Solution 首先它的限制关系是一个树形图 首先考虑如果它是一个外向树该怎么做. 这是很简单的,我们相当于每个子树的根都是子树中最早出现的点,概率是容易计算的. 设DP状态 ...

  6. codevs 5969 [AK]刻录光盘x

                         题目描述 Description • 在FJOI2010夏令营快要结束的时候,很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家,以便大家回去后继续学 ...

  7. CodeForces 1245D Shichikuji and Power Grid

    cf题面 解题思路 比赛过程中想了一个贪心--把所有城市按照自建代价排序,排在第一的城市肯定自建,之后依次判断排在后面的城市要自建还是要连接前面的.这么做WA13了(第一次忘开long longWA4 ...

  8. golang string、int、int64 float 互相转换

    #string到int int,err := strconv.Atoi(string) #string到int64 int64, err := strconv.ParseInt(string, 10, ...

  9. scrum例会报告+燃尽图02

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/9955 一.小组情况 组长:贺敬文组员:彭思雨 王志文 位军营 徐丽君队名 ...

  10. LeetCode 46. 全排列(Permutations)

    题目描述 给定一个没有重复数字的序列,返回其所有可能的全排列. 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [ ...