在Zend Framework中使用MIME类型上传docx文件失败?
我正尝试从用户上传简历到我的网站
所以我也上传文件上传文件,pdf和docx
ms word doc文件与pdf一起正常上传,但docx文件正在进入
应用程序/ zip mime类型,因此文件不会上传
如何做正确的MIME类型检查,以便docx文件作为其他文件上传
下面是我的代码
$config = Zend_Registry::get ( 'config' );
$files_path = $config->resume->path;
$adapter = new Zend_File_Transfer ();
// Limit the MIME type of all given files to gif and jpeg images
$adapter->addValidator ( 'MimeType', false, array ('application/msword','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/pdf' ) );
$files = $adapter->getFileInfo ();
$file_name = null;
$tmpArr = null;
foreach ( $files as $file => $info ) {
if (! empty ( $info ['name'] )) {
$tmpArr = explode ( ".", $info ['name'] );
}
}
if (! empty ( $tmpArr )) {
//$file_name = $tmpArr [0] . "-" . $post ['id'] . "." . $tmpArr [1];
$file_name = $tmpArr [0] . "-" . $post ['id'] . "." . $tmpArr [count ( $tmpArr ) - 1];
$adapter->setDestination ( $files_path );
$adapter->addFilter ( 'Rename', array ('target' => $files_path . DS . $file_name, 'overwrite' => true ) );
if ($adapter->receive ()) {
// # = # = # = # = # = # = # = # = # = # = # = # = # = # = # = # = # =
$arrayKeys = array_keys ( $files );
$actual_file_name = $tmpArr [0] . "." . $tmpArr [1];
$uploaded_file_name = $adapter->getFileName ( $arrayKeys [0], false );
if ($actual_file_name == $uploaded_file_name) {
rename ( $files_path . DS . $actual_file_name, $files_path . DS . $file_name );
}
// # = # = # = # = # = # = # = # = # = # = # = # = # = # = # = # = # =
$post ['filename'] = $file_name;
$result = $employeeModel->updateEmployeeResume ( $post );
$old_file = $files_path . DS . $post ['c_image_name'];
if (file_exists ( $old_file )) {
@unlink ( $old_file );
}
$this->_flashMessenger->addMessage ( 'Resume added successfully' );
}
DOCX基本上是一个ZIP文件(你可以用你最喜欢的解压缩工具将它们解压缩,试一试!),所以如果你希望你的用户能够上传DOCX文件,你必须允许ZIP文件。
我在zend中添加了临时修复
//允许zip文件上传
$adapter->addValidator ( 'MimeType', false, array ('application/msword','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/pdf','application/zip' ) );
//使用.zip禁止文件上传并获取上传的docx文件。
$adapter->addValidator('Extension', false, 'doc,docx,pdf');
链接地址: http://www.djcxy.com/p/46785.html
上一篇: Uploading docx file in Zend Framework with mime type fails?