jquery Uploadify は、Ajax スタイルの画像一括アップロード プラグインです。PHP で jquery Uploadify を使用すると、非常に便利です。この記事で紹介した方法と手順に従って、jquery Uploadify プラグインの画像一括アップロード機能を追加してください。 PHP プログラムに追加します。
この記事はdilicmsをベースに画像アップロード機能を追加したものです。
1. データテーブル dili_fieldtypes に新しいフィールドを追加します: k=>image, V=>画像アップロード領域 (VACHAR);
2. application/libraries/dili/Field_behavior.php を変更し、switch に次のコードを追加します。
1件の「画像」:2$field=array(
3'type'=>'VARCHAR',
4'制約'=>255,
5'デフォルト'=>'
6);
7ブレイク;
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']=="画像"):
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 ( ! 定義('BASEPATH')) exit('直接スクリプトアクセスは許可されていません');
03date_default_timezone_set('アジア/上海');
04class Photo は Front_Controller を拡張します{
05 public function __construct()
06 {
07parent::__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']== "画像/gif"){
29 $ThisPhoto=imagecreatefromgif($FileName);
30}
31 $width=$IMGInfo['0'];
32 $height=$IMGInfo['1'];
33 $scale=$高さ/$幅;
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["ファイルデータ"]['名前'];
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?>
さて、テストの時間です。