这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 扣丁学堂PHP培训之使用jqueryuploadify进行多图片上传(源码)

共1条 1/1 1 跳转至

扣丁学堂PHP培训之使用jqueryuploadify进行多图片上传(源码)

助工
2020-11-05 10:21:04     打赏

  jqueryuploadify是一款Ajax风格的批量图片上传插件,在PHP中使用jqueryuploadify很方便,请按照本文介绍的方法和步骤,为你的PHP程序增加jqueryuploadify插件的批量上传图片功能。本文是以dilicms为基础,为其增加图片上传功能。

  1.增加数据表dili_fieldtypes新字段:k=>image,V=>图片上传区域(VACHAR);


  2.修改application/libraries/dili/Field_behavior.php,在switch中增加如下代码:


  viewsourceprint?1case'image':


  $field=array(


  'type'=>'VARCHAR',


  'constraint'=>255,


  'default'=>''


  );


  7break;


  3.修改application/libraries/dili/Form.php并且增加如下代码:


  viewsourceprint?1function_image($fileld,$default){


  //$type='type=hidden';


  //$width=($field['width']?$field['width']:'570').'px;';


  //$height=($field['height']?$field['height']:'415').'px;';


  return;


  }


  4.在content_form.php和category_content_form.php中增加判断代码:


  viewsourceprint?01<?php


  if($v['type']=="image"):


  ?>


  <divid="fileQueue"></div>


  <inputtype="file"id="uploadify"name="Filedata"/>


  <div>


  <ahref="javascript('#uploadify').uploadify('upload','*')">上传</a>


  <ahref="javascript('#uploadify').uploadify('cancel')">取消上传</a>


  </div>


  <inputtype="text"style=""name="<?phpecho$v['name']?>"id="<?phpecho$v['name']."_id"?>"value=""/>


  <inputtype="hidden"style=""name="poster"id="<?phpecho$v['name']."_id_1"?>"value=""/>


  <linkhref="<?phpecho$this->config->item("base_url");?>asset/js/uploadify/uploadify.css"type="text/css"rel="stylesheet"/>


  <scripttype="text/javascript"src="<?phpecho$this->config->item("base_url");?>asset/js/uploadify/jquery.uploadify-3.1.min.js"></script>


  <scripttype="text/javascript">


  $(document).ready(function()


  {


  $("#uploadify").uploadify({


  'debug':false,


  'swf':'<?phpecho$this->config->item("base_url");?>asset/js/uploadify/uploadify.swf',


  'uploader':'<?phpecho$this->config->item("base_url");?>photo/savephoto',


  'method':"post",


  'height':30,


  'width':120,


  'queueID':'fileQueue',


  'auto':false,


  'multi':false,


  'fileTypeDesc':'只允许上传jpg格式图片',


  'fileTypeExt':'*.jpg',


  'fileSizeLimit':'10MB',


  'formData':{'<?phpechosession_name();?>':'<?phpecho$this->session->userdata('session_id');?>'},


  'onUploadError':function(file,errorCode,errorMsg,errorString){


  alert('Thefile'+file.name+'couldnotbeuploaded:'+errorString);


  },


  'onUploadSuccess':function(file,data,response){


  alert(data);


  $("#<?phpecho$v['name']."_id"?>").val(data);


  $("#<?phpecho$v['name']."_id_1"?>").val(data);


  }


  });


  })


  </script>


  <?phpendif;?>


  6.新建photo.php文件:


  viewsourceprint?01<?php


  if(!defined('BASEPATH'))exit('Nodirectscriptaccessallowed');


  date_default_timezone_set('Asia/Shanghai');


  classPhotoextendsFront_Controller{


  publicfunction__construct()


  {


  parent::__construct();


  }


  function_getFilePath()


  {


  $path="attachments/".date("Y")."/";


  if(!file_exists($path)){


  mkdir($path,'777');


  }


  $path.=date("m")."/";


  if(!file_exists($path)){


  mkdir($path,'777');


  }


  return$path;


  }


  function_creat_photothumbs($FileName,$setW){


  $IMGInfo=getimagesize($FileName);


  if(!$IMGInfo)returnfalse;


  if($IMGInfo['mime']=="image/pjpeg"||$IMGInfo['mime']=="image/jpeg"){


  $ThisPhoto=imagecreatefromjpeg($FileName);


  }elseif($IMGInfo['mime']=="image/x-png"||$IMGInfo['mime']=="image/png"){


  $ThisPhoto=imagecreatefrompng($FileName);


  }elseif($IMGInfo['mime']=="image/gif"){


  $ThisPhoto=imagecreatefromgif($FileName);


  }


  $width=$IMGInfo['0'];


  $height=$IMGInfo['1'];


  $scale=$height/$width;


  $nw=$setW;


  $nh=$nw*$scale;


  $NewPhoto=imagecreatetruecolor($nw,$nh);


  imagecopyresampled($NewPhoto,$ThisPhoto,0,0,0,0,$nw,$nh,$width,$height);


  ImageJpeg($NewPhoto,$FileName);


  returntrue;


  }


  function_savephoto_post(){


  $dest_dir=$this->_getFilePath();


  if(!empty($_FILES)){


  $date=date('Ymd');


  //$dest_dir=$this->_getFilePath();


  $photoname=$_FILES["Filedata"]['name'];


  $phototype=$_FILES['Filedata']['type'];


  $photosize=$_FILES['Filedata']['size'];


  $fileInfo=pathinfo($photoname);


  $extension=$fileInfo['extension'];


  $newphotoname=date("YmdHis").mt_rand(10000,99999).'.'.$extension;


  $dest=$dest_dir.$newphotoname;


  //move_uploaded_file($_FILES['Filedata']['tmp_name'],iconv("UTF-8","gb2312",$dest));


  move_uploaded_file($_FILES['Filedata']['tmp_name'],$dest);


  //chmod($dest,0755);


  //如果宽度大于600则要进行裁剪


  $arr=getimagesize($dest);


  if($arr[0]>600){


  $thumb_w=600;


  $this->_creat_photothumbs($dest,$thumb_w);


  }


  //生成缩略图


  $config2['image_library']='gd2';


  $config2['source_image']=$dest;


  $config2['create_thumb']=TRUE;


  $config2['maintain_ratio']=TRUE;


  $config2['width']=170;


  $config2['height']=150;


  $config2['master_dim']="width";


  $config2['thumb_marker']="_1";


  $this->load->library('image_lib',$config2);


  $this->image_lib->resize();


  echo$dest;


  }


  }


  }


  ?>


  以上就是关于扣丁学堂PHP培训之使用jqueryuploadify进行多图片上传及源码的详细介绍最后想要了解更多关于PHP开发发展前景趋势,请关注扣丁学堂官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的PHP视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的一套PHP视频教程课程,让你快速掌握PHP从入门到精通开发实战技能。扣丁学堂PHP技术交流群:374332265。



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]