2011-10-22 67 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。