thinkphp5 框架结合plupload实现图片批量上传功能示例
本文实例讲述了thinkphp5框架结合plupload实现图片批量上传功能。分享给大家供大家参考,具体如下:
在extend目录下新增目录uploader,并新建类Uploads
1,'errmsg'=>'上传图片错误']; $data=''; if(!empty($file)){ //上传根目录 $file_path='uploads/'; //如果传了路径过来,则加入路径 if(!empty($path)){ $file_path.=$path.'/'; } if(!file_exists($file_path)){ @mkdir($file_path); } //上传 $info=$file->move($file_path); //获取后缀 $ext=strtolower($info->getExtension()); //判断后缀是否合法 $exts=['jpg','png','gif','jpeg','mp4','avi','3gp']; if(in_array($ext,$exts)){ $save_name=$info->getSaveName(); $save_path="/".$file_path.$save_name; if($add_domain){ $save_path="http://www.localhost.com/".$file_path.$save_name; } $res=['errno'=>0,'data'=>$save_path]; }else{ $res=['errno'=>1,'errmsg'=>$ext]; } }else{ $res=['errno'=>1,'errmsg'=>'请选择图片!']; } return$res; } } ?>
使用
file("file"); $updir=$request->post('updir'); $res=Uploads::upfile($files,$updir); returnjson_encode($res); } publicfunctiondel_upload(Request$request){ $res=['errno'=>1,'errmsg'=>'删除失败']; $filename=$request->post('filename'); if(!empty($filename)){ @unlink($_SERVER['DOCUMENT_ROOT'].$filename); $res=['errno'=>0,'errmsg'=>$filename]; } returnjson_encode($res); } } ?>
前端js
varimage_files=newArray();//多图片上传临时保存 $(document).ready(function(){ $('.media-picker').each(function(){ varel=$(this); varelbtn=el.find('.media-picker-button'); varmulti_selection=false; varinputField=el.find('input[type=hidden]'); //是否多文件上传 if(elbtn.attr('data-multiple')=='multiple'){ multi_selection=true; } //上传目录 varupload_path=inputField.attr('upload-path'); varuploader=newplupload.Uploader({ runtimes:'html5,flash,silverlight,html4', browse_button:elbtn.attr('data-id')+'_uploader', multi_selection:multi_selection, auto_start:true, flash_swf_url:'../plugins/plupload/js/Moxie.swf', silverlight_xap_url:'../plugins/plupload/js/Moxie.xap', url:'/backend/upload', filters:{ mime_types:[//只允许上传图片和zip,rar文件 {title:"Imagefiles",extensions:"jpg,jpeg,gif,png,bmp"}, {title:"Videofiles",extensions:"mp4,3gp"} ], max_file_size:'10mb',//最大只能上传10mb的文件 prevent_duplicates:false//不允许选取重复文件 }, init:{ PostInit:function(){}, BeforeUpload:function(up,file){ up.setOption('multipart_params',{'updir':upload_path}) }, FilesAdded:function(up){ up.start();//选择完后直接上传 }, FileUploaded:function(up,file,info){ if(info.status==200) { varfile_type=file.type; varis_image=file_type.indexOf('image'); varis_video=file_type.indexOf('video'); //解析返回的数据 varresult=JSON.parse(info.response); varimg_list=""; if(result.errno==0){ //返回的图片上传结果 varfile_name=result.data; if(multi_selection){ //多图片上传不考虑视频 if(is_image>-1){ //存入临时数组 image_files.push(file_name); inputField.val(JSON.stringify(image_files)); for(vari=0;i✖ "+image_files[i]+"
"; } } }else{ inputField.val(file_name); if(is_image>-1){ img_list=""; } if(is_video>-1){ img_list=" ✖ "+result.data+"
"; } } el.find('.image-list').html(img_list); }else{ alert(result.errmsg); } } else { alter(info.response); } }, Error:function(up,err){ alert(err.response); } } }) uploader.init(); //删除 if(multi_selection){ el.on('click','.delete-image',function(){ varfile_name=inputField.val(); varelDel=$(this); //得到filename varcurrent_file_name=elDel.next('p').html(); //删除当前的父级li elDel.parent().remove(); //重新赋值数组 varnew_image_files=newArray(); if(image_files!=''){ new_image_files=image_files; }else{ new_image_files=$.parseJSON(file_name); } //去掉数组中的当前值 for(variinnew_image_files){ if(new_image_files[i]==current_file_name){ new_image_files.splice(i,1); break; } } $.ajax({ type:"POST", url:"/backend/del_upload", data:"filename="+current_file_name, success:function(msg){ console.log(msg) } }); inputField.val(JSON.stringify(new_image_files)); }); }else{ el.on('click','.delete-image',function(){ //显示值为空 varfile_name=inputField.val(); el.find('.image-list').html(''); inputField.val(''); $.ajax({ type:"POST", url:"/backend/del_upload", data:"filename="+file_name, success:function(msg){ console.log(msg) } }); }); } }) }) ✖ "+result.data+"
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《ZendFrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。