2013-10-10 47 views
0

我有一個有兩個文件輸入的上傳表單。Zend addFilter只能重命名單個文件

我想重命名文件,以便每個文件都有唯一的名稱。以下是我在我的控制器

public function mainAction() 
    { 
     $upload = new Zend_File_Transfer(); 
     $files = $upload->getFileInfo(); 

     foreach ($files as $file => $info) { 
      $upload->addFilter('Rename', uniqid($file.'_').'.csv', $file); 
     } 

     $upload->receive(); 
    } 

即使我指定的文件中使用setfilter最後的參數,則它使他們最終以相同的名稱重命名在同一時間這兩個文件。

+0

嗯,以及如果你使用'addFilter'的而不是'setFilter'? – Wrikken

+0

哦對不起,我正在使用addFilter,那是atypo – wiredin

+0

嗯,你對'uniqid'的調用實際上創建了2個不同的字符串嗎? (我在手冊頁上看到關於Cygwin的評論) – Wrikken

回答

0

我想出瞭如何去做。

這是形式:

<input type="file" name="one"> 
<input type="file" name="two"> 

這正好在控制器

 $renamefile1 = new Zend_Filter_File_Rename(array(
     'target' => $path.'/file1.csv', // path to file 
     'overwrite' => true 
     )); 

     //rename file 2 to file2 
     $renamefile2 = new Zend_Filter_File_Rename(array(
     'target' => $path.'/file2.csv', // path to file 
     'overwrite' => true 
     )); 


     $names = $upload->getfileName(); 
     $file1 = $renamefile1->filter($names["one"]); 
     $file2 = $renamefile2->filter($names["two"]);