PHP + plupload.js实现多图上传并显示进度条加删除实例代码


Posted in PHP onMarch 06, 2017

PHP + plupload.js JS插件实现多图上传并显示进度条加删除实例,废话不多说,直接上代码

HTML代码:

<!DOCTYPE html> 
 
<head> 
<meta charset="utf-8" /> 
<meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"> 
<title>多图上传</title> 
<script type="text/javascript" src="jquery.min.js"></script> 
<script type="text/javascript" src="plupload.full.min.js"></script> 
</head> 
<body> 
<style type="text/css"> 
*{ margin:0px; padding:0px; font-family:Microsoft Yahei; box-sizing:border-box; -webkit-box-sizing:border-box;} 
.demo{max-width:640px; margin:0 auto; min-width:320px;} 
.ul_pics{ float:left;} 
.ul_pics li{float:left; margin:0px; padding:0px; margin-left:5px; margin-top:5px; position:relative; list-style-type:none; border:1px solid #eee; width:80px; height:80px;} 
.ul_pics li img{width:80px;height:80px;} 
.ul_pics li i{ position:absolute; top:0px; right:-1px; background:red; cursor:pointer; font-style:normal; font-size:10px; width:14px; height:14px; text-align:center; line-height:12px; color:#fff;} 
.progress{position:relative; margin-top:30px; background:#eee;}  
.bar {background-color: green; display:block; width:0%; height:15px; }  
.percent{position:absolute; height:15px; top:-18px; text-align:center; display:inline-block; left:0px; width:80px; color:#666; line-height:15px; font-size:12px; }  
.demo #btn{ width:80px; height:80px; margin-left:5px; margin-top:5px; border:1px dotted #c2c2c2; background:url(up.png) no-repeat center; background-size:30px auto; text-align:center; line-height:120px; font-size:30px; color:#666; float:left;} 
</style> 
<div class="demo"> 
 <a href="javascript:void(0)" rel="external nofollow" id="btn"></a> 
 <ul id="ul_pics" class="ul_pics clearfix"> 
 </ul>  
</div> 
<script type="text/javascript"> 
var uploader = new plupload.Uploader({    //创建实例的构造方法 
 runtimes: 'html5,flash,silverlight,html4', //上传插件初始化选用那种方式的优先级顺序 
 browse_button: 'btn',           // 上传按钮 
 url: "upimgs.php?get=upimg",        //远程上传地址 
 flash_swf_url: 'plupload/Moxie.swf',    //flash文件地址 
 silverlight_xap_url: 'plupload/Moxie.xap', //silverlight文件地址 
 filters: { 
  max_file_size: '10mb', //最大上传文件大小(格式100b, 10kb, 10mb, 1gb) 
  mime_types: [  //允许文件上传类型 
    {title: "files", extensions: "jpg,png,gif"} 
  ] 
 }, 
 multipart_params:{ },  //文件上传附加参数 
 file_data_name:"upimg", //文件上传的名称 
 multi_selection: false, //true:ctrl多文件上传, false 单文件上传 
 init: { 
  FilesAdded: function(up, files) { //文件上传前 
    if ($("#ul_pics").children("li").length > 5) { 
      alert("您上传的图片太多了!"); 
      uploader.destroy(); 
    } else { 
      var li = ''; 
      plupload.each(files, function(file) { //遍历文件 
        li += "<li id='" + file['id'] + "'><div class='progress'><span class='bar'></span><span class='percent'>上传中 0%</span></div></li>"; 
      }); 
      $("#ul_pics").append(li); 
      uploader.start(); 
    } 
  }, 
  UploadProgress: function(up, file) { //上传中,显示进度条 
  var percent = file.percent; 
    $("#" + file.id).find('.bar').css({"width": percent + "%"}); 
    $("#" + file.id).find(".percent").text("上传中 "+percent + "%"); 
  }, 
  FileUploaded: function(up, file, info) { //文件上传成功的时候触发 
    var data = eval("(" + info.response + ")"); 
    $("#" + file.id).html("<img src='" + this.url + "'/><i onclick='delimg(this)'>x</i><input type='hidden' name='' value='"+ this.url +"'>"); 
  }, 
  Error: function(up, err) { //上传出错的时候触发 
    alert("error"); 
  } 
 } 
}); 
uploader.init(); 
 
function delimg(o){ 
  var src = $(o).prev().attr("src");  
  $.post("upimgs.php?get=delimg&imgurl="+src,function(data){    
    if(data==1){ 
      $(o).parent().remove(); 
    } 
  })  
} 
</script> 
</body> 
</html>

PHP 代码:

<?php 
$typeArr = array("jpg", "png", "gif");//允许上传文件格式  
$path = "files/";//上传路径  
 if (isset($_POST)) {  
  if($_GET['get']=="upimg"){ 
   $name = $_FILES['file']['name'];  
   $size = $_FILES['file']['size'];  
   $name_tmp = $_FILES['file']['tmp_name'];  
   if (empty($name)) {  
     echo json_encode(array("error"=>"您还未选择图片"));  
     exit;  
   }  
   $type = strtolower(substr(strrchr($name, '.'), 1)); //获取文件类型  
     
   if (!in_array($type, $typeArr)) {  
     echo json_encode(array("error"=>"清上传jpg,png或gif类型的图片!"));  
     exit;  
   }  
   if ($size > (1024 * 1024 * 10)) {  
     echo json_encode(array("error"=>"图片大小已超过10MB!"));  
     exit;  
   }  
     
   $pic_name = time() . rand(10000, 99999) . "." . $type;//图片名称  
   $pic_url = $path . $pic_name;//上传后图片路径+名称  
   if (move_uploaded_file($name_tmp, $pic_url)) { //临时文件转移到目标文件夹  
     echo json_encode(array("error"=>"0","pic"=>$pic_url,"name"=>$pic_name));  
   } else {  
     echo json_encode(array("error"=>"上传有误,清检查服务器配置!"));  
   }  
  } 
  if($_GET['get']=="delimg"){ 
    $imgsrc = $_GET['imgurl']; 
    unlink($imgsrc); 
    echo 1; 
  } 
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP 导出数据到淘宝助手CSV的方法分享
Feb 27 PHP
在PHP中操作Excel实例代码
Apr 29 PHP
drupal 代码实现URL重写
May 04 PHP
PHP实现手机归属地查询API接口实现代码
Aug 27 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
PHP工程师VIM配置分享
Dec 15 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
基于thinkPHP实现的微信自定义分享功能示例
Sep 23 PHP
PHP7匿名类用法分析
Sep 26 PHP
php简单统计中文个数的方法
Sep 30 PHP
php+mysql开发中的经验与常识小结
Mar 25 PHP
PHP实现添加购物车功能
Mar 06 #PHP
PHP自动补全表单的两种方法
Mar 06 #PHP
PHP中for循环与foreach的区别
Mar 06 #PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
Mar 05 #PHP
php实现留言板功能
Mar 05 #PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
Mar 04 #PHP
php获取网站根目录物理路径的几种方法(推荐)
Mar 04 #PHP
You might like
PHP可变函数学习小结
2015/11/29 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
php中array_unshift()修改数组key注意事项分析
2016/05/16 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
PHP简单预防sql注入的方法
2016/09/27 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
Yii框架数据模型的验证规则rules()被执行的方法
2016/12/02 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
简单的php购物车代码
2020/06/05 PHP
点击下载链接 弹出页面实现代码
2009/10/01 Javascript
用js实现小球的自由移动代码
2013/04/22 Javascript
jquery统计输入文字的个数并对其进行判断
2014/01/07 Javascript
学习JavaScript编程语言的8张思维导图分享
2015/03/27 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
深入浅析AngularJS和DataModel
2016/02/16 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
跟老齐学Python之复习if语句
2014/10/02 Python
Django小白教程之Django用户注册与登录
2016/04/22 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
澳大利亚购买太阳镜和眼镜网站:Glamoureyes
2020/09/22 全球购物
学生手册家长评语
2014/02/10 职场文书
公务员政审单位鉴定材料
2014/05/16 职场文书
文秘应届生求职信
2014/07/05 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
导师工作推荐信
2015/03/27 职场文书
趣味运动会口号
2015/12/24 职场文书
青年教师听课心得体会
2016/01/15 职场文书
2016年幼儿园教师政治学习心得体会
2016/01/23 职场文书