我无法确定使用Zend Framework上传的图片的文件类型。 每当我尝试使用$ _FILES ['文件'] ['类型']来确定文件类型时,我总是得到 applicationoctet-stream 。只有当我在检查表单是否发布之前确定类型时才能获得正确的扩展名。有谁知道为什么?有没有更好的方法来解决这个问题?
这有效:
$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 :(得分:1)
我在stackoverflow上看到了更多关于此的问题,但找不到解决我特定问题的答案。问题是zend表单无法验证上传的文件是否是图像,只要它开始处理表单文件类型将变为 applicationoctet-stream ,就不会上传什么类型的文件。
诀窍是调整php.ini,查找并取消注释:extension = php_fileinfo.dll。
我仍然想知道什么是zend_form需要fileinfo,$ _FILES全局没有fileinfo。