2011-10-22 38 views
0

我無法確定使用Zend Framework上傳的圖片的文件類型。 每次我嘗試使用$ _FILES ['File'] ['type']來確定文件類型時,我總是得到applicationoctet-stream。只有在檢查表單是否發佈之前確定類型時,我才能得到正確的擴展名。有誰知道爲什麼?有沒有更好的方法來處理這個問題?使用Zend上傳圖片形式確定圖片擴展

這個工程:

$form = new Form_Reg; 
$this->view->Reg = $form; 
if(isset($_FILES['File']['type'])){ 
    $filetype = $file = $_FILES['File']['type']; 
    } 

     if ($this->getRequest()->isPost()){ 

      $formData = $this->_request->getPost(); 
      if($form->isValid($formData)){ 

       echo $filetype; 
       exit; 


     } 
    } 

這不起作用:

$form = new Form_Reg; 
$this->view->Reg = $form; 




     if ($this->getRequest()->isPost()){ 

      $formData = $this->_request->getPost(); 
      if($form->isValid($formData)){ 
       $filetype = $file = $_FILES['File']['type']; 
       echo $filetype; 
       exit; 


     } 
    } 
+0

總是在我的AK的問題,我找到了答案:): 這是獲得擴展的好得多的辦法: \t $ arr_pathinfo = PATHINFO($形式 - >文件 - >的getFileName()); \t $ extension = strtolower($ arr_pathinfo ['extension']); – Tosh

+1

如果你的答案是正確的,請發表評論作爲答案,然後接受它,這樣每個人都可以輕鬆地看到它。 –

回答

1

我看到這個計算器上更多的問題,但無法找到解決我的具體問題的答案。問題是zend表單無法驗證上傳的文件是否爲圖像,只要它開始處理表單,文件類型將變爲applicationoctet-stream,無論上傳哪種文件。

訣竅是調整php.ini,查找並取消註釋:extension = php_fileinfo.dll。

我還想知道zend_form是否需要fileinfo,$ _FILES全局工作沒有fileinfo。