解析PHP使用jquery uploadify进行多图片上传(源码)

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

解析PHP使用jquery uploadify进行多图片上传(源码)

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;

}

}

}

?>

相关推荐