Ich habe eine benutzerdefinierte Seitenvorlage mit einem Formular, das jeder Besucher der Website eine Datei hochladen kann. Jetzt möchte ich den Dateityp einschränken, der hochgeladen wird (nur docx, doc und pdf) und ich beschränke die Dateigröße auf 2MB.Wie kann der Dateityp zum Hochladen in WordPress eingeschränkt werden?
Wie geht das? Ich habe bereits eine Funktion, die der Benutzer hochladen darf, aber ich weiß nicht, wie man den Dateityp einschränkt, der hochgeladen werden darf. Bitte hilf mir.
Begrenzen der Datei funktioniert jetzt, aber es ist seltsam, warum die Datei noch speichern, auch wenn die Datei zu groß ist. Wie behebe ich das?
PHP in benutzerdefinierte Seitenvorlage
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['file'];
$attachment_id = upload_user_file($file);
}
if ($_FILES["file"]["size"] > 1048576){
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
}
PHP in functions.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;
}
bekommen Dies beweisen kann hilfreich sein: http://stackoverflow.com/questions/4328947/limit-file-format-when-using-input-type -file –
Ich möchte nicht die Client-Seite verwenden, um den Dateityp zu begrenzen – User014019