JS插件plupload.js实现多图上传并显示进度条
本文实例为大家分享了plupload.js多图上传的具体代码,供大家参考,具体内容如下
HTML代码:
<!DOCTYPEhtml>
<head>
<metacharset="utf-8"/>
<metaname="viewport"content="initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no">
<title>多图上传</title>
<scripttype="text/javascript"src="jquery.min.js"></script>
<scripttype="text/javascript"src="plupload.full.min.js"></script>
</head>
<body>
<styletype="text/css">
*{margin:0px;padding:0px;font-family:MicrosoftYahei;box-sizing:border-box;-webkit-box-sizing:border-box;}
.demo{max-width:640px;margin:0auto;min-width:320px;}
.ul_pics{float:left;}
.ul_picsli{float:left;margin:0px;padding:0px;margin-left:5px;margin-top:5px;position:relative;list-style-type:none;border:1pxsolid#eee;width:80px;height:80px;}
.ul_picsliimg{width:80px;height:80px;}
.ul_picslii{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:1pxdotted#c2c2c2;background:url(up.png)no-repeatcenter;background-size:30pxauto;text-align:center;line-height:120px;font-size:30px;color:#666;float:left;}
</style>
<divclass="demo">
<ahref="javascript:void(0)"id="btn"></a>
<ulid="ul_pics"class="ul_picsclearfix">
</ul>
</div>
<scripttype="text/javascript">
varuploader=newplupload.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{
varli='';
plupload.each(files,function(file){//遍历文件
li+="<liid='"+file['id']+"'><divclass='progress'><spanclass='bar'></span><spanclass='percent'>上传中0%</span></div></li>";
});
$("#ul_pics").append(li);
uploader.start();
}
},
UploadProgress:function(up,file){//上传中,显示进度条
varpercent=file.percent;
$("#"+file.id).find('.bar').css({"width":percent+"%"});
$("#"+file.id).find(".percent").text("上传中"+percent+"%");
},
FileUploaded:function(up,file,info){//文件上传成功的时候触发
vardata=eval("("+info.response+")");
$("#"+file.id).html("<imgsrc='"+this.url+"'/><ionclick='delimg(this)'>x</i><inputtype='hidden'name=''value='"+this.url+"'>");
},
Error:function(up,err){//上传出错的时候触发
alert("error");
}
}
});
uploader.init();
functiondelimg(o){
varsrc=$(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)){
echojson_encode(array("error"=>"您还未选择图片"));
exit;
}
$type=strtolower(substr(strrchr($name,'.'),1));//获取文件类型
if(!in_array($type,$typeArr)){
echojson_encode(array("error"=>"清上传jpg,png或gif类型的图片!"));
exit;
}
if($size>(1024*1024*10)){
echojson_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)){//临时文件转移到目标文件夹
echojson_encode(array("error"=>"0","pic"=>$pic_url,"name"=>$pic_name));
}else{
echojson_encode(array("error"=>"上传有误,清检查服务器配置!"));
}
}
if($_GET['get']=="delimg"){
$imgsrc=$_GET['imgurl'];
unlink($imgsrc);
echo1;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。