在php中使用jquery uploadify进行多图片上传

在php中使用jquery uploadify进行多图片上传

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

本文是以dilicms为基础,为其增加图片上传功能。

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

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

1case 'image':

2$field=array(

3'type'=>'VARCHAR',

4'constraint'=>255,

5'default'=>' '

6);

7break;

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

1function _image($fileld,$default){

2//$type= 'type=hidden';

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

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

5return ;

6}

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

01

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

03?>

04

05

06

07上传

08取消上传

09

10" value=""/>

11" value=""/>

12asset/js/uploadify/uploadify.css" type="text/css" rel="stylesheet" />

13

14

42

6. 新建photo.php文件:

01

02if ( ! defined('BASEPATH')) exit('No direct script access allowed');

03date_default_timezone_set('Asia/Shanghai');

04class Photo extends Front_Controller{

05 public function __construct()

06 {

07 parent::__construct();

08 }

09 function _getFilePath()

10 {

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

12 if(!file_exists($path)){

13 mkdir($path,'777');

14 }

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

16 if(!file_exists($path)){

17 mkdir($path,'777');

18 }

19 return $path;

20 }

21 function _creat_photothumbs($FileName,$setW){

22 $IMGInfo= getimagesize($FileName);

23 if(!$IMGInfo) return false;

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

25 $ThisPhoto= imagecreatefromjpeg($FileName);

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

27 $ThisPhoto= imagecreatefrompng($FileName);

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

29 $ThisPhoto=imagecreatefromgif($FileName);

30 }

31 $width=$IMGInfo['0'];

32 $height=$IMGInfo['1'];

33 $scale=$height/$width;

34 $nw=$setW;

35 $nh=$nw*$scale;

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

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

38 ImageJpeg ($NewPhoto,$FileName);

39 return true;

40 }

41 function _savephoto_post(){

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

43 if (!empty($_FILES)) {

44 $date = date('Ymd');

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

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

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

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

49 $fileInfo=pathinfo($photoname);

50 $extension=$fileInfo['extension'];

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

52 $dest=$dest_dir.$newphotoname;

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

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

55 //chmod($dest, 0755);

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

57 $arr=getimagesize($dest);

58 if($arr[0]>600){

59 $thumb_w=600;

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

61 }

62 //生成缩略图

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

64 $config2['source_image'] = $dest;

65 $config2['create_thumb'] = TRUE;

66 $config2['maintain_ratio'] = TRUE;

67 $config2['width'] = 170;

68 $config2['height'] = 150;

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

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

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

72 $this->image_lib->resize();

73 echo $dest;

74 }

75 }

76}

77?>

好了,可以测试了。