纯JS实现多图片上传(在layui框架中)
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框架中)的更多相关文章
- js基础进阶--图片上传时实现本地预览功能的原理
欢迎访问我的个人博客:http://www.xiaolongwu.cn 前言 最近在项目上加一个图片裁剪上传的功能,用的是cropper插件,注意到选择本地图片后就会有预览效果,这里整理一下这种预览效 ...
- 原生JS实现异步图片上传(预览)
效果 实现过程分为两步 1. 用户点击添加后通过 H5文件读取 FileReader对象以DataURL的格式读取图片 2. 通过FormData对象生成表单数据,通过ajax上传到后台 HTML & ...
- Ajax异步上传在SSM框架中的应用
最近在做毕业设计,由于毕设中要实现图片上传和视频上传的功能.突然发现原来的Form表单中的file已经满足不了我了,于是在一番折腾之后终于让我找到了一个简便的上传方式.下面来和大家分享一下我的过程. ...
- 阿里云使用js 实现OSS图片上传、获取OSS图片列表、获取图片外网访问地址(读写权限私有、读写权限公共);
详情请参考:https://help.aliyun.com/document_detail/32069.html?spm=a2c4g.11186623.6.763.ZgC59a 或者https://h ...
- 阿里云OSS图片上传plupload.js结合jq-weui 图片上传的插件
项目中用到了oss上传,用的plupload,奈何样式上不敢恭维,特别是放在移动端上使用.于是自己把它移植到了jq weui的上传图片组件上. 更改:选择照片后确认即及时上传至oss服务器,不限制上传 ...
- js canvas压缩图片上传
$('input[type="file"]').on('change',function(){ var files = !!this.files ? this.files : [] ...
- 从零开始学习Node.js例子三 图片上传和显示
index.js var server = require("./server"); var router = require("./router"); var ...
- 百度UEditor在线编辑器的配置和图片上传
前言 最近在项目中使用了百度UEditor富文本编辑器,配置UEditor过程中遇到了几个问题,在此记录一下解决方案和使用方法,避免以后使用UEditor出现类似的错误. 基本配置 一.下载UEdit ...
- PHP实现多图片上传
PHP实现多图片上传 今天在工作中遇到了一个需求:一个表单实现多个上传图片,类似于QQ空间上传照片的模式.即:可以一次性上传多个图片,但是封面图片只有一个. 最先,最重要的事,在服务器上对文件进行读写 ...
随机推荐
- JAVA笔记3-this关键字
1. 2.例题
- C# 扩展方法——mysql-dapper(MySqlMapperExtensions)
其他扩展方法详见:https://www.cnblogs.com/zhuanjiao/p/12060937.html 反射比较耗费性能,反射得到属性进行缓存 根据反射得到的属性,进行动态拼接sql语句 ...
- k8s-强制删除pod
kubectl get deployments --all-namespaces [root@master ~]# kubectl get deployments --all-namespacesNA ...
- 在百度ueditor上粘贴从word中copy的图片和文字 图片无法显示的问题
我这边从world 里面复制粘贴图片到编辑器中,它自动给我上传了,但是我是用的第三方的要设置一个token值,我找了很久,也没有找到应该在哪里设置这个上传的参数,如果是点击图片上传,我知道在dialo ...
- 四图3d旋转轮播
<!DOCTYPE html><html><head><meta charset="utf-8" /><title>3d ...
- ping不通服务器就邮件警告
ping不通服务器就发一封邮件 (单台) vim /root/scipt/1.sh #!/bin/bash ping -c 4 192.168.0.116 &> /dev/null #p ...
- C++入门经典-例2.14-使用移位运算
1:代码如下: // 2.14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> usin ...
- 第七周总结&实验报告5
这一周的课程内容比较难,而且比较不容易理解,所有学习的很吃力,现在接触的知识越来越多,也越来越难了,还是要多对照书本来进行学习! 这周主要学的有: 一.抽象类 1.Java中可以创建一种类专门用来当作 ...
- 190707Python-RabbitMQ
一.简单的RabbitMQ示例 生产者 # Author:Li Dongfei import pika connection = pika.BlockingConnection( pika.Conne ...
- Golang协程实现流量统计系统(3)
进程.线程.协程 - 进程:太重 - 线程:上下文切换开销太大 - 协程:轻量级的线程,简洁的并发模式 Golang协程:goroutine Hello world package main impo ...