2015-09-29 138 views
2

如何使用zendframe工作在多個文件夾中上傳一個文件。當我僅在主文件夾中嘗試保存圖像時,不保存在子文件夾中。 這是我在控制器中使用的代碼。如何在多個文件夾中上傳一個文件?

$apt = new Zend_File_Transfer_Adapter_Http(); 
$files = $apt->getFileInfo(); 
foreach($files as $file => $fileInfo) { 
     $apt->addFilter('Rename', array('target' => 'images/practice/'.$fileInfo['name'],'overwrite' => true)); 
     $apt->addFilter(new Zend_Filter_File_Resize(array('width' => 500,'height' => 600 ,'keepRatio' => true,'directory'=>'images/practice/small/', 'overwrite'=>true))); 
     $apt->addFilter(new Zend_Filter_File_Resize(array('width' => 300,'height' => 300,'keepRatio' => true,'directory'=>'images/practice/thumbs/', 'overwrite'=>true))); 
if ($apt->isUploaded($file)) { 
      if ($apt->isValid($file)) { 
       if ($apt->receive($fileInfo['name'])) { 
        $info = $apt->getFileInfo($file); 
       } 
      } 
     } 
     else{ 
     echo 'not uploaded<br>'; 
     } 
    } 

請幫助我,謝謝提前。

+0

你好?任何一個在那裏? – user3668438

+0

奇怪的是,爲什麼你想要將它上傳到兩個位置?你或許可以用Zend Framework來做到這一點。但使用服務器端腳本可能更容易。 –

回答

1

我想你應該爲此編寫自己的過濾器。我沒有檢查當前過濾器的來源,但他們都重命名/移動文件而不是複製它。如果你想創建一個圖像的縮略圖,你應該擴展Zend的調整大小過濾器,並將結果複製到目標目錄,而不是移動/複製它。擴展這個類並改變幾行應該不是很困難。

一旦你做了,你應該使用你自己的調整大小過濾器,而不是ZF的過濾器。觀看您添加過濾器的順序。如果您首先重命名該文件,那麼如果您自己的調整大小過濾器可以確定該文件的位置,我不會100%確定。

相關問題