本文實(shí)例講述了Zend Framework實(shí)現(xiàn)多文件上傳功能的方法。分享給大家供大家參考,具體如下:
第一步:在我們?cè)瓉斫坛陶业絣ibrary文件夾..這里原來是存放我們Zend類庫文件夾的地方..現(xiàn)在我們?cè)趌ibrary文件夾里加上如下幾個(gè)文件夾:library/Custom/Controller/Plugin/
文件夾我們加入完成.這時(shí)候我們就要找到我們的文件上傳的類文件了..這里我命名為Upload.php文件名..這個(gè)文件就是我們將要用到文件上傳的的類文件.當(dāng)然這文件我是改寫成了Zend Framework里的插件形式...Upload.php部分文件說明如下,(我這里只給出部分程序,也就是簡(jiǎn)單的多文件上傳類):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<?php class Custom_Controller_Plugin_Upload extends Zend_Controller_Plugin_Abstract { private $uploaddir ; //文件上傳存路徑 private $max_files ; //一次性最多上傳多少文件 private $max_size ; //文件最大量 private $permission ; //文件夾是否可以有權(quán)限 private $files ; private $allowed = array (); //允許上傳文件格式 //不允許上傳文件格式 private $notallowed = array ( "exe" , "mp3" ); private $filesname ; //文件表單name //圖片文件寬度,超過就生成縮略圖 private $imagewidth ; //圖片文件高度,超過就生成縮略圖 private $imageheight ; public $filearray = array (); //返回多個(gè)文件名 public $lastFileName ; //返加一個(gè)文件名 public $Error ; ?> |
第二步:在我們以前寫留言本的教程里..找到當(dāng)時(shí)的控制器..IndexController.php,加入一個(gè)名稱叫做upload的動(dòng)作(Action).這個(gè)upload動(dòng)作就是為了要文件上傳時(shí)可以運(yùn)用..它的詳細(xì)程序,如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public function uploadAction() { echo $this ->view->render( 'header.phtml' ); //顯示模版頭文件 if ( strtolower ( $_SERVER [ 'REQUEST_METHOD' ])== 'post' ){ Zend_Loader::loadClass( 'Custom_Controller_Plugin_Upload' ); $uploadfile = new Custom_Controller_Plugin_Upload( ROOT_DIR. '/public/upload/' , 'uploadfile' , '10' , '2048000' , array ( "gif" , "png" , "jpg" , "bmp" , "jpeg" ),600,600); if ( '' == $uploadfile ->Error){ echo '<div class = "commentInner" style= "width:860px;text-align:center;" > 恭喜您,照片上傳成功!請(qǐng)您<a style= "color:red;" href= "'.$this->view->baseUrl.'/index/index/" >點(diǎn)這里返回</a></div>'; } else { echo '<div class = "commentInner" style= "width:860px;text-align:center;" > 對(duì)不起,您照片上傳有以下錯(cuò)誤: '.$uploadfile->error.' 請(qǐng)返回重新上傳!請(qǐng)您 <a style= "color:red;" href= "'.$this->view->baseUrl.'/index/upload/" > 點(diǎn)這里返回</a></div>'; } } echo $this ->view->render( 'message/upload.phtml' ); //顯示模版 echo $this ->view->render( 'footer.phtml' ); //顯示模版腳文件 } |
第三步:在我們的View模板文件夾中加入上傳功能Form表單..:這里我在里加多加了一個(gè)upload.phtml模板文件...為了讓大家更好的看清楚怎樣實(shí)現(xiàn)上傳..我只寫一個(gè)最簡(jiǎn)單的上傳文件表單..這樣實(shí)現(xiàn)起來就不會(huì)太難...我們只要在這個(gè)View模板文件里..把它的POST的動(dòng)作指向到我們upload這個(gè)動(dòng)作就可以上傳文件了..
最后.你要的只是輸入你的網(wǎng)站地址..比如我的:http://127.0.0.1/zendframework/index/upload/ 這個(gè)只你在上傳表單里選擇圖片文件..你就可以上傳了..沒有錯(cuò)的話.你剛上傳的文件會(huì)在網(wǎng)站目錄zendframework/public/upload/這個(gè)文件夾下面..應(yīng)試不會(huì)有錯(cuò)..因?yàn)槲业倪@里只控制上傳為圖片文件..你可以改成你自己想要上傳的其它文件..
希望本文所述對(duì)大家基于Zend Framework框架的PHP程序設(shè)計(jì)有所幫助。