纯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空间上传照片的模式.即:可以一次性上传多个图片,但是封面图片只有一个. 最先,最重要的事,在服务器上对文件进行读写 ...
随机推荐
- python中list.sort()与sorted()的区别
list.sort()和sorted()都是python的内置函数,他们都用来对序列进行排序,区别在于 list.sort()是对列表就地(in-place)排序,返回None:sorted()返回排 ...
- Acwing-279-自然数拆分(背包)
链接: https://www.acwing.com/problem/content/281/ 题意: 给定一个自然数N,要求把N拆分成若干个正整数相加的形式,参与加法运算的数可以重复. 求拆分的方案 ...
- SpringMvc (注解)中的上传文件
第一步:导入commons-fileupload-1.3.1.jar 和commons-io-2.2.jar 架包 第二步:在applicationContext.xml中 配置 <bean i ...
- mybatis 中 if-test 判断大坑
[<if test="takeWay == '0'">]mybatis的if判断 单个的字符要写到双引号里面才行,改为<if test='takeWay == & ...
- 1,Java消息服务-JMS
一,消息服务 消息服务指的是两个应用程序之间进行异步通信的API,它为标准消息协议和消息服务提供了一组通用接口,包括创建.发送.读取消息等,用于支持应用程序开发.在Java中,当两个应用程序使用JMS ...
- 【UOJ #46】 【清华集训2014】玄学
题目描述 巨酱有 n 副耳机,他把它们摆成了一列,并且由 1 到n依次编号.每个耳机有一个玄学值,反映了各自的一些不可名状的独特性能.玄学值都是 0 到 m-1 间的整数.在外界的作用下(包括但不限于 ...
- Spring Boot教程(二十六)使用Spring Security安全控制
准备工作 首先,构建一个简单的Web工程,以用于后续添加安全控制,也可以用之前Chapter3-1-2做为基础工程.若对如何使用Spring Boot构建Web应用,可以先阅读<Spring B ...
- 一个困扰很久的异常—java.lang.NoClassDefFoundError: com/google/gson/Gson
描述: 这个异常是在运行时抛出的,编译的时候没有任何问题,而且异常信息非常少,只有一句:java.lang.NoClassDefFoundError: com/google/gson/Gson 解决: ...
- 误删系统服务Task Schedule的恢复方法
cmd命令 sc query Schedule查询该服务是否存在 sc delete Schedule删除服务 sc create Schedule binpath= "C:\Windows ...
- shell脚本之awk、sed、grep案例
1.BEGIN END用法user DIR,内容显示用户名称.用户家目录 $NF为awk的内置变量,表示最后一行,$(NF-1)就表示倒数第二行,最后打印页脚 页眉显示 cat /e ...