2012-03-12 74 views
1

當使用Zend的是這樣的:Zend框架 - Zend_File_Transfer上傳處理程序

$upload = new Zend_File_Transfer_Adapter_Http(); 
$upload->setDestination('/some/directory'); 
$upload->addValidator(x) 
->addValidator(y); 
$upload->receive(); 

首先上傳到tmp目錄下上傳的文件,驗證,然後轉移到「一些/目錄」或直接保存進入setDestination目錄?如果是前者,在我看來,它在上傳到tmp目錄後與「move_uploaded_file」的作用相同。

ZF是否提供某種類型的http流處理程序來將文件原生寫入特定的目錄?即類似於nodejs或django?

回答

2

Zend_File_Transfer_Adapter_Http使用move_uploaded_file經驗證人驗證後,您分配。

here

public function receive($files = null) 
{ 
    if (!$this->isValid($files)) { 
     return false; 
    } 
    ... some code ... 

    if (!move_uploaded_file($content['tmp_name'], $filename)) { 
     if ($content['options']['ignoreNoFile']) { 
      $this->_files[$file]['received'] = true; 
      $this->_files[$file]['filtered'] = true; 
      continue; 
     } 

     $this->_files[$file]['received'] = false; 
     return false; 
    } 

有沒有特殊的機制,這是剛剛超過標準功能

對於直接上傳到你的目錄,你可以使用類似

$input = fopen("php://input", "r"); 
$file = fopen("/my/directory/filename.eee", "w"); 
while ($data = fread($input, 1024)){ 
    fwrite($file, $data); 
} 
包裝

但ZF看起來並不像這樣

+0

我認爲這可能會有一些包裝,但我認爲現在普通好的PHP'。 – Tony 2012-03-12 21:12:05