简介:

  通过webuploader 实现简单的图片上传功能,支持多张图上传

  官方文档传送门:http://fex.baidu.com/webuploader/getting-started.html#%E5%9B%BE%E7%89%87%E4%B8%8A%E4%BC%A0

引入资源:

  使用Web Uploader文件上传需要引入三种资源:JS, CSS, SWF。

<!--引入CSS-->
<link rel="stylesheet" type="text/css" href="webuploader文件夹/webuploader.css"> <!--引入JS-->
<script type="text/javascript" src="webuploader文件夹/webuploader.js"></script> <!--SWF在初始化的时候指定,在后面将展示-->

Html:

<div class="upload_pic">
<div id="fileList" class="uploader-list"></div>
<div id="filePicker">选择图片</div>
<div class="webuploader-pick go_upload" style="margin-top: 3px;">点击上传</div>
<ul class="pic_lists">
</div>

Js:

function webUpload() {
// 初始化Web Uploader
var uploader = WebUploader.create({ // 选完文件后,是否自动上传。
auto: false, duplicate: false, // swf文件路径
swf: '/com/webupload/Uploader.swf', // 文件接收服务端。
server: '/admin.php?c=Index&a=batchUploadPic', // 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: '#filePicker', // 只允许选择图片文件。
accept: {
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
}, resize: false
}); // 监听fileQueued事件,通过uploader.makeThumb来创建图片预览图。
var num = 0;
uploader.on('fileQueued', function( file ) {
num--;
var $li = $('<li id="' + file.id + '" _id="'+file.id+'" class="item">' +
'<img src="" alt=""><h4 class="info" style="display:inline-block;">' + file.name + ' <span class="button del" >删除</span></h4>' +
'</li>');
var $img = $li.find('img');
$('.pic_lists').append($li);
uploader.makeThumb( file, function( error, src ) {
if ( error ) {
$img.replaceWith('<span>不能预览</span>');
return;
}
$img.attr( 'src', src );
}, 60, 60 ); });
// 删除
$('.pic_lists').on('click','.del',function () {
uploader.removeFile($(this).parents('li').attr('_id'),true);
$(this).parents('li').remove();
num++;
});
//上传成功
uploader.on( 'uploadSuccess', function( file,res ) {
if( res.code == 0 ){
$('#'+file.id).remove();
num++;
if( num == 0 ){
win.msg('上传成功');
window.location.reload();
}
}
});
// 上传失败
uploader.on( 'uploadError', function( file ) {
win.msg(file.name+'上传失败');
}); // 点击上传
$('.upload_pic').on('click','.go_upload',function () {
uploader.upload();
});
}

PHP:

public function batchUploadPic() {
header('Content-type:text/html; charset=utf-8');
$objFiels = $_FILES['file'];
$strSavePath = './upload/'.date('y').'/'.date('m').date('d').'/';
$strPicName = rand(1000000, 9999999) . rand(1000000, 9999999) . '.jpg';
if (!is_dir($strSavePath)) mkdir($strSavePath, 0777, true);
$strPicPath = $strSavePath . '/' . $strPicName;
$boolUploadStatus = move_uploaded_file($objFiels['tmp_name'], $strPicPath);
if ($boolUploadStatus) {
echo json_encode(['code' => 0, 'msg' => '成功', 'path' => $strPicPath]);
} else {
echo json_encode(['code' => 1, 'msg' => '上传图片失败', 'path' => '']);
}
}

Webuploader 简单图片上传 支持多图上传的更多相关文章

  1. skymvc文件上传支持多文件上传

    skymvc文件上传支持多文件上传 支持单文件.多文件上传 可以设定 文件大小.存储目录.文件类型 //上传的文件目录 $this->upload->uploaddir="att ...

  2. 网页图片提取助手(支持背景图、选择dom范围)

    网页图片提取助手(支持背景图.选择dom范围) 网页图片下载工具.网页图片批量保存. 使用场景: 作为web前端开发首——学习小生的你我,仿学在线页面是常有的事,但是一些在线资源,比如图片,图片有im ...

  3. php 上传图片,无刷新上传,支持多图上传,远程图片上传

    1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html ...

  4. ajax 异步插入图片到数据库(多图上传)

    额 大概就这么个样子...截个图 点浏览  选择几张图片 选择完了 确定一下 然后插入数据库 同时在页面中显示插入的图片,代码 也没啥.看下 index.php <html><hea ...

  5. js formData图片上传(单图上传、多图上传)后台java

    单图上传 <div class="imgUp">     <label>头像单图</label>     <input type=&quo ...

  6. iOS 使用AFN 进行单图和多图上传 摄像头/相册获取图片,压缩图片

    图片上传时必要将图片进行压缩,不然会上传失败 首先是同系统相册选择图片和视频.iOS系统自带有UIImagePickerController,可以选择或拍摄图片视频,但是最大的问题是只支持单选,由于项 ...

  7. PHP 多图上传,图片批量上传插件,webuploader.js,百度文件上传插件

    PHP  多图上传,图片批量上传插件,webuploader.js,百度文件上传插件(案例教程) WebUploader作用:http://fex.baidu.com/webuploader/gett ...

  8. SpringBoot图片上传(四) 一个input上传N张图,支持各种类型

    简单介绍:需求上让实现,图片上传,并且可以一次上传9张图,图片格式还有要求,网上找了一个测试了下,好用,不过也得改,仅仅是实现了功能,其他不尽合理的地方,还需自己打磨. 代码: //html<d ...

  9. webuploader 实现图片批量上传

    1.导入资源 2.JSP代码 <div class="page-container"> <div class="row cl"> < ...

随机推荐

  1. 分布式文件系统FastDFS简介、搭建、与SpringBoot整合实现图片上传

    之前大学时搭建过一个FastDFS的图片服务器,当时只是抱着好奇的态度搭着玩一下,当时搭建采用了一台虚拟机,tracker和storage服务在一台机器上放着,最近翻之前的博客突然想着在两台机器上搭建 ...

  2. Mysql给外网IP授权访问

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'58.221.44.174' IDENTIFIED BY 'njqt123456' WITH GRANT OPTION; ...

  3. Java传参:值传递 or 引用传递 ?

    刚开始学Java的时候一度以为:基本数据类型是值传递,引用类型是引用传递.新人很容易在这两个概念上面被搞糊涂,后来看了Hollis的文章才明白了Java中只有值传递. 接下来我能用简单明了的方式来说明 ...

  4. P3387 【模板】缩点 题解 (Tarjan)

    题目链接 P3387 [模板]缩点 解题思路 这几天搞图论,好有趣hhh,多写几篇博客. 上次学\(Tarjan\)求割点,这次缩点. 思路大概是多一个栈和染色的步骤,每次\(Tarjan\)的时候把 ...

  5. BuaacodingT141 microhhh的回城 题解(模拟)

    题目链接 microhhh的回城 解题思路 这题挺有意思的.本来寻思放在\(DS\)第一次练习赛应该不会很难吧,结果愣是卡在数据范围上写不出来. 然后暴力过掉了,但是用了\(1019ms\).感觉可以 ...

  6. git分支管理--rebase&merge详解

    目录 分支合并 git merge --squash [分支名] 注意点 git rebase [分支名] git rebase git rebase --abort git rebase -i gi ...

  7. 如何让python脚本支持命令行参数--getopt和click模块

    一.如何让python脚本支持命令行参数 1.使用click模块 如何使用这个模块,在我前面的博客已经写过了,可参考:https://www.cnblogs.com/Zzbj/p/11309130.h ...

  8. 常用开发库 - 告別BeanUtils拷贝,MapStruct工具库最全详解

    常用开发库 - MapStruct工具库详解 MapStruct是一款非常实用Java工具,主要用于解决对象之间的拷贝问题,比如PO/DTO/VO/QueryParam之间的转换问题.区别于BeanU ...

  9. 攻防世界 reverse 进阶5-7

    5.re-for-50-plz-50  tu-ctf-2016 流程很简单,异或比较 1 x=list('cbtcqLUBChERV[[Nh@_X^D]X_YPV[CJ') 2 y=0x37 3 z= ...

  10. 运维小姐姐说这篇Consul集群和ACL配置超给力(保姆级)

    前言 上一篇简单介绍了Consul,并使用开发模式(dev)进行流程演示,但在实际开发中需要考虑Consul的高可用和操作安全性,所以接着来聊聊集群和ACL的相关配置,涉及到的命令会在环境搭建过程中详 ...