本文實例講述了Zend Framework實現多文件上傳功能的方法。分享給大家供大家參考,具體如下:
第一步:在我們原來教程找到library文件夾..這里原來是存放我們Zend類庫文件夾的地方..現在我們在library文件夾里加上如下幾個文件夾:library/Custom/Controller/Plugin/
文件夾我們加入完成.這時候我們就要找到我們的文件上傳的類文件了..這里我命名為Upload.php文件名..這個文件就是我們將要用到文件上傳的的類文件.當然這文件我是改寫成了Zend Framework里的插件形式...Upload.php部分文件說明如下,(我這里只給出部分程序,也就是簡單的多文件上傳類):
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 ; //文件夾是否可以有權限 private $files ; private $allowed = array (); //允許上傳文件格式 //不允許上傳文件格式 private $notallowed = array ( "exe" , "mp3" ); private $filesname ; //文件表單name //圖片文件寬度,超過就生成縮略圖 private $imagewidth ; //圖片文件高度,超過就生成縮略圖 private $imageheight ; public $filearray = array (); //返回多個文件名 public $lastFileName ; //返加一個文件名 public $Error ; ?> |
第二步:在我們以前寫留言本的教程里..找到當時的控制器..IndexController.php,加入一個名稱叫做upload的動作(Action).這個upload動作就是為了要文件上傳時可以運用..它的詳細程序,如下所示:
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;" > 恭喜您,照片上傳成功!請您<a style= "color:red;" href= "'.$this->view->baseUrl.'/index/index/" >點這里返回</a></div>'; } else { echo '<div class = "commentInner" style= "width:860px;text-align:center;" > 對不起,您照片上傳有以下錯誤: '.$uploadfile->error.' 請返回重新上傳!請您 <a style= "color:red;" href= "'.$this->view->baseUrl.'/index/upload/" > 點這里返回</a></div>'; } } echo $this ->view->render( 'message/upload.phtml' ); //顯示模版 echo $this ->view->render( 'footer.phtml' ); //顯示模版腳文件 } |
第三步:在我們的View模板文件夾中加入上傳功能Form表單..:這里我在里加多加了一個upload.phtml模板文件...為了讓大家更好的看清楚怎樣實現上傳..我只寫一個最簡單的上傳文件表單..這樣實現起來就不會太難...我們只要在這個View模板文件里..把它的POST的動作指向到我們upload這個動作就可以上傳文件了..
最后.你要的只是輸入你的網站地址..比如我的:http://127.0.0.1/zendframework/index/upload/ 這個只你在上傳表單里選擇圖片文件..你就可以上傳了..沒有錯的話.你剛上傳的文件會在網站目錄zendframework/public/upload/這個文件夾下面..應試不會有錯..因為我的這里只控制上傳為圖片文件..你可以改成你自己想要上傳的其它文件..
希望本文所述對大家基于Zend Framework框架的PHP程序設計有所幫助。