> > > Zend Framework 14: Upload file sử dụng Zend_File

Zend Framework 14: Upload file sử dụng Zend_File

Tham gia diễn đàn khá lâu nhưng mình chưa đóng góp bài viết nào. Hôm nay, nhân ngày đẹp trời, mình sẽ làm bài Tut hướng dẫn upload file sử dụng Zend File. Nếu có gì chưa hợp lý hoặc thiếu sót, mong mọi người góp ý nhé.
Dương vật giả 1 pin
 
Âm đạo giả giá rẻ Perfect
 

Bán tài liệu zend tiếng việt: 500.000 vnđ (500 k)

Hotline: 0933.381.903
Yahoo: Mua bán online
Email: songthan.hctm@gmail.com

Cấu trúc của folder trong bài Tut này như sau:
zffile
|__application
| |__ configs
| |__ controllers
| | |__ IndexController.php
| |__ forms
| | |__ UploadFile
| | | |__ UploadFile.php
| | |__ File.php
| |__ models
| |__ views
| |__bootstrap.php
|__ library
|__ public
| |__ file
|__ .htaccess
|__ index.php


Tạo form để upload file /zffile/forms/File.php:

PHP Code:
class Form_File extends Zend_Form{
    public function 
init(){
        
$this->setAction('')->setMethod('post');
        
$this->setAttrib('enctype','multipart/form-data');
        
$file $this->createElement('file','file',array(
                        
'label' => 'Choose a file',
        ));
        
$submit $this->createElement('submit','Upload');
        
        
$this->addElement($file)            
            ->
addElement($submit);
    }
}

Tạo thư mục /zffile/public/file để chứa file upload.
Tạo lớp upload file /zffile/forms/UploadFile/UploadFile.php:

PHP Code:
class Form_UploadFile_UploadFile{
    public 
$_upload;
    public function 
__construct(){
        
$this->_upload = new Zend_File_Transfer;
        
$this->_upload->setDestination(APPLICATION_PATH.'/../public/file/');
    }
}

Trong Controller Index:

PHP Code:
    class IndexController extends Zend_Controller_Action{
        public function 
indexAction(){
            
$form = new Form_File;
        
            if(
$this->_request->isPost()){
                
$upload = new Form_UploadFile_UploadFile;
                
$files $upload->_upload->getFileInfo();
                foreach(
$files as $file=>$info){
                    if(!
$upload->_upload->isUploaded($file)){
                        echo 
"Chua chon file";
                }
            }
            
$upload->_upload->receive();
        }
                
$this->view->form $form;
    }

Truy cập localhost/zffile/ , chọn file upload và test kết quả.
Trường hợp, nếu muốn hạn chế các file upload như hạn chế dung lượng của file được up chẳng hạn, ta có thể làm như sau:
Trong file /zffile/forms/UploadFile/UploadFile.php, ta viết thêm một hàm setValidator, để kiểm tra dung lượng file khi upload:

PHP Code:
public function setValidator(){
$this->_upload->addValidator(‘Size’,false,’40000’)    //chỉ cho phép file có dung lượng
                                                                       //nhỏ hơn 40 KB

Trong file IndexController, ta thêm hàm isValid vào foreach để kiểm tra:

PHP Code:
if(!$upload->_upload->isValid($file)){
        echo 
"File khong hop le";

Bạn có thể tham khảo thêm về các validator khác ở http://framework.zend.com/manual/1.1...alidators.html
Chúc các bạn thành công! ^^

Bán tài liệu zend tiếng việt: 500.000 vnđ (500 k)

Hotline: 0933.381.903
Yahoo: Mua bán online
Email: songthan.hctm@gmail.com