我有一个自定义的网页模板与表单,任何网站的访问者都可以上传文件。现在,我想限制将上载的文件类型(仅限于docx、doc和pdf),并将文件大小限制为2MB。
如何做到这一点?我已经有了一个用户允许上传的函数,但我不知道如何限制允许上传的文件类型。请帮帮我。
我试图改变
\'post_mime_type\' => $file_return[\'type\']
进入这个
\'post_mime_type\' => \'application/msword,vnd.openxmlformats-officedocument.wordprocessingml.document,pdf\'
但它仍然不起作用。
自定义页面模板中的PHP
if(isset($_POST[\'submit\'])){
$firstName = isset($_POST[\'firstName\']) ? $_POST[\'firstName\'] : \'\';
$middleName = isset($_POST[\'middleName\']) ? $_POST[\'middleName\'] : \'\';
$lastName = isset($_POST[\'lastName\']) ? $_POST[\'lastName\'] : \'\';
$email = isset($_POST[\'email\']) ? $_POST[\'email\'] : \'\';
$mobile = isset($_POST[\'mobile\']) ? $_POST[\'mobile\'] : \'\';
$locations = isset($_POST[\'locations_list\']) ? $_POST[\'locations_list\'] : \'\';
$position = isset($_POST[\'position\']) ? $_POST[\'position\'] : \'\';
$message = isset($_POST[\'message\']) ? $_POST[\'message\'] : \'\';
if( ! empty($_FILES)){
$file=$_FILES[\'resumeFile\'];
$attachment_id = upload_user_file($file);
}
$sql=$wpdb->query($wpdb->prepare("INSERT INTO resume_databank(submit_time,last_name,first_name,middle_name,mobile_number,email,location,position,message,process_resume,attachment_resume_id) VALUES (now(),\'$lastName\',\'$firstName\',\'$middleName\',\'$mobile\',\'$email\',\'$locations\',\'$position\',\'$message\',\'No\',\'$attachment_id\')"));
}
函数中的PHP。php
function upload_user_file($file = array()){
require_once(ABSPATH . \'wp-admin/includes/admin.php\');
$file_return = wp_handle_upload($file, array(\'test_form\' => false));
if(isset($file_return[\'error\']) || isset($file_return[\'upload_error_handler\'])){
return false;
} else {
$filename = $file_return[\'file\'];
$attachment = array(
\'post_mime_type\' => $file_return[\'type\'],
\'post_title\' => preg_replace(\'/\\.[^.]+$/\', \'\', basename($filename)),
\'post_content\' => \'\',
\'post_status\' => \'inherit\',
\'guid\' => $file_return[\'url\']
);
$attachment_id = wp_insert_attachment($attachment, $file_return[\'url\']);
require_once(ABSPATH . \'wp-admin/includes/file.php\');
$attachment_data = wp_generate_attachment_metadata($attachment_id, $filename);
wp_update_attachment_metadata($attachment_id, $attachment_data);
if(0 < intval($attachment_id)){
return $attachment_id;
}
}
return false;
}