Suchen Sie nach dem hochgeladenen Dateityp wordpress für mehrere Uploads

Ich habe ein Formular im Frontend, mit dem der Benutzer nach Bedarf mehrere Bilder und andere Dateitypen hochladen kann. Um mehrere Dateien Array zu verarbeiten, habe ich diese Antwort gefolgt und hier ist das relevant.

PHP

global $post; if ($_FILES) { $files = $_FILES['upload']; foreach ($files['name'] as $key => $value) { if ($files['name'][$key]) { $file = array( 'name' => $files['name'][$key], 'type' => $files['type'][$key], 'tmp_name' => $files['tmp_name'][$key], 'error' => $files['error'][$key], 'size' => $files['size'][$key] ); $_FILES = array("upload" => $file); foreach ($_FILES as $file => $array) { $newupload = wp_insert_attachment($file,$post->ID); } } } } 

HTML Bitte beachten Sie, dass mein Formular mehrere Bilder Arrays zB erlaubt. upload[]

 

Ich möchte Dateityp mit nativen WordPress-functionen wp_check_filetypes überprüfen , Der Codex sagt nicht viel darüber. Bitte hilf mir mit einem Beispiel.

Solutions Collecting From Web of "Suchen Sie nach dem hochgeladenen Dateityp wordpress für mehrere Uploads"

Endlich herausgefunden. Dieser Code gibt einen Fehler aus, wenn der Dateityp nicht zulässig ist. Hoffe das hilft Neulingen ein wenig Zeit zu sparen.

 global $post;//http://wordpress.stackexchange.com/questions/39753/ if ($_FILES) { $files = $_FILES['upload']; foreach ($files['name'] as $key => $value) { if ($files['name'][$key]) { $file = array( 'name' => $files['name'][$key], 'type' => $files['type'][$key], 'tmp_name' => $files['tmp_name'][$key], 'error' => $files['error'][$key], 'size' => $files['size'][$key] ); $uploaded_file_type = $files['type'][$key]; $allowed_file_types = array('image/jpg', 'image/jpeg', 'application/pdf'); if(in_array($uploaded_file_type, $allowed_file_types)) { //if in array run the attachment function $_FILES = array("upload" => $file); foreach ($_FILES as $file => $array) { $newupload = insert_attachment($file,$post_id); } } else { // wrong file type $upload_error .= "Invalid File Type. 
"; } } } }