2012-03-23 132 views
2

我有一個窗體包含兩個文件元素的唯一名稱。我想從Zend_File_Transfer_Adapter_Http()獲取每個文件元素;我怎樣才能做到這一點? 如果我使用zend框架多輸入文件上傳

 
$apt = new Zend_File_Transfer_Adapter_Http(); 
. 
. 
$apt->receive(); 

已上傳兩個文件。但我對每個文件元素執行不同的查詢。

例如

 
$smallPic = small pic name that i get from input smallPic 
i execute 
update products set smallPic = '$smallPic' 
and for large pic 
$largePic = large pic name that i get from input largePic 
i execute 
update products set largePic = '$largePic' 

我怎樣才能達到與$貼切每個輸入文件中的元素?

回答

4

以下是我過去用來從Zend_Form接收多個文件的一些代碼,其中許多文件上傳字段是動態的而不是表格的一部分。

你既然知道這兩個文件上傳的名字,你也可以說$apt->getFileInfo('my_file');

$apt = new Zend_File_Transfer_Adapter_Http(); 
$files = $apt->getFileInfo(); 

foreach($files as $file => $fileInfo) { 
    if ($apt->isUploaded($file)) { 
     if ($apt->isValid($file)) { 
      if ($apt->receive($file)) { 
       $info = $apt->getFileInfo($file); 
       $tmp = $info[$file]['tmp_name']; 
       $data = file_get_contents($tmp); 
       // here $tmp is the location of the uploaded file on the server 
       // var_dump($info); to see all the fields you can use 
      } 
     } 
    } 
} 

希望有所幫助。

+0

doh!我怎麼能忘記getFileInfo()方法。謝謝你的回覆,foreach循環沒有幫助,但我可以達到$ file = $ apt-> getFileInfo('smallPic'); 和最後一個問題 我認爲所有的文件元素處理一個zend文件適配器。有什麼辦法來創建另一個適配器?或者這是一個很好的做法? – hrnsky 2012-03-24 08:37:51

+0

如果您使用'Zend_Form'來創建表單,那麼可以使用一個適配器,那麼您不必手動使用'Zend_File_Transfer',因爲'Zend_Form'可以處理大部分工作。請參閱[Zend_Form_Element_File](http://framework.zend.com/manual/en/zend.form.standardElements.html#zend.form.standardElements.file) – drew010 2012-03-24 19:50:57

+0

我希望文檔包含一個簡單的多文件示例。 – chrishiestand 2012-11-28 07:27:01