Php 如何让Wordpress允许上载.doc和.docx
我正在编写一个自定义Wordpress插件。我希望能够上传.pdf、.doc和.docx文件。默认情况下,PDF已被接受,但我无法获取要上载的文档或DOCX文件。首先,我尝试将它们添加为新的mime类型:Php 如何让Wordpress允许上载.doc和.docx,php,wordpress,Php,Wordpress,我正在编写一个自定义Wordpress插件。我希望能够上传.pdf、.doc和.docx文件。默认情况下,PDF已被接受,但我无法获取要上载的文档或DOCX文件。首先,我尝试将它们添加为新的mime类型: function allowDocMimeTypes( $mime_types ) { $mime_types = array ( 'doc' => 'application/msword', 'docx' => 'application/v
function allowDocMimeTypes( $mime_types ) {
$mime_types = array (
'doc' => 'application/msword',
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
);
return $mime_types;
}
$new_mimes = add_filter( 'upload_mimes', 'allowDocMimeTypes' );
那是行不通的。接下来,我尝试将它们作为覆盖添加到wp_handle_upload()函数:
$upload_overrides = array(
'test_form' => false,
'mimes' => array(
'pdf' => 'application/pdf',
'doc' => 'application/msword',
'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
),
);
$movefile = wp_handle_upload( $file, $upload_overrides );
那也不行。有什么建议吗?您的第一个解决方案是正确的,但是您需要覆盖现有值。以下代码应在不覆盖现有代码的情况下工作
function mime_types($mimes) {
$mimes['doc'] = 'application/msword';
$mimes['docx'] = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
return $mimes;
}
add_filter('upload_mimes', 'mime_types');
谢谢贾斯帕!我感谢你的帮助。我将allowDocMimeTypes()替换为您的mime类型(),并从upload\u覆盖中删除了“mime”数组,但它仍然不起作用。我的php日志也没有显示任何有用的内容。这就好像完全忽略了上载mime。请确保上载的文档使用正确的mime类型(尝试在word中创建新文件)。不正确的文件头将导致WordPress拒绝这些文件