2012-03-12 5 views
1

Zend Frameworkの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_Httpmove_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

私はこれにもいくつかのラッパーがあるかもしれないと考えましたが、私は普通のgood ol 'PHPを今は推測しています。 – Tony

関連する問題