/** * Upload a file * @return string or array */ public function upload_file($field_key, $field) { if (isset($_FILES[$field_key]) && !empty($_FILES[$field_key]) && !empty($_FILES[$field_key]['name'])) { if (!empty($field['allowed_mime_types'])) { $allowed_mime_types = $field['allowed_mime_types']; } else { $allowed_mime_types = get_allowed_mime_types(); } $files = array(); $files_to_upload = job_manager_prepare_uploaded_files($_FILES[$field_key]); add_filter('job_manager_upload_dir', array($this, 'upload_dir'), 10, 2); foreach ($files_to_upload as $file_to_upload) { $uploaded_file = job_manager_upload_file($file_to_upload, array('file_key' => $field_key)); if (is_wp_error($uploaded_file)) { throw new Exception($uploaded_file->get_error_message()); } else { if (!isset($uploaded_file->file)) { $uploaded_file->file = str_replace(site_url(), ABSPATH, $uploaded_file->url); } $files[] = $uploaded_file; } } remove_filter('job_manager_upload_dir', array($this, 'upload_dir'), 10, 2); return $files; } }
/** * Upload a file * @return string or array */ protected function upload_file($field_key, $field) { if (isset($_FILES[$field_key]) && !empty($_FILES[$field_key]) && !empty($_FILES[$field_key]['name'])) { if (!empty($field['allowed_mime_types'])) { $allowed_mime_types = $field['allowed_mime_types']; } else { $allowed_mime_types = get_allowed_mime_types(); } $file_urls = array(); $files_to_upload = job_manager_prepare_uploaded_files($_FILES[$field_key]); foreach ($files_to_upload as $file_to_upload) { $uploaded_file = job_manager_upload_file($file_to_upload, array('file_key' => $field_key)); if (is_wp_error($uploaded_file)) { throw new Exception($uploaded_file->get_error_message()); } else { $file_urls[] = $uploaded_file->url; } } if (!empty($field['multiple'])) { return $file_urls; } else { return current($file_urls); } } }
/** * Upload file via ajax * * No nonce field since the form may be statically cached. */ public function upload_file() { $data = array('files' => array()); if (!empty($_FILES)) { foreach ($_FILES as $file_key => $file) { $files_to_upload = job_manager_prepare_uploaded_files($file); foreach ($files_to_upload as $file_to_upload) { $uploaded_file = job_manager_upload_file($file_to_upload, array('file_key' => $file_key)); if (is_wp_error($uploaded_file)) { $data['files'][] = array('error' => $uploaded_file->get_error_message()); } else { $data['files'][] = $uploaded_file; } } } } wp_send_json($data); }
private function upload_files($post_id) { /** WordPress Administration Image API */ include_once ABSPATH . 'wp-admin/includes/image.php'; include_once ABSPATH . 'wp-admin/includes/media.php'; $allowed_mime_types = get_allowed_mime_types(); $output = array(); $files_to_upload = job_manager_prepare_uploaded_files($_FILES['listify_gallery_images']); foreach ($files_to_upload as $file_key => $file_to_upload) { $uploaded_file = job_manager_upload_file($file_to_upload, array('file_key' => $file_key)); if (is_wp_error($uploaded_file)) { throw new Exception($uploaded_file->get_error_message()); } else { $output['urls'][] = $uploaded_file->url; } } $maybe_attach = array(); if (empty($output['urls'])) { return $output; } foreach ($output['urls'] as $url) { $maybe_attach[] = str_replace(array(WP_CONTENT_URL, site_url()), array(WP_CONTENT_DIR, ABSPATH), $url); } foreach ($maybe_attach as $attachment_url) { $attachment = array('post_title' => get_the_title($post_id), 'post_content' => '', 'post_status' => 'inherit', 'post_parent' => $post_id, 'guid' => $attachment_url); if ($info = wp_check_filetype($attachment_url)) { $attachment['post_mime_type'] = $info['type']; } $attachment_id = wp_insert_attachment($attachment, $attachment_url, $post_id); $output['ids'][] = $attachment_id; if (!is_wp_error($attachment_id)) { wp_update_attachment_metadata($attachment_id, wp_generate_attachment_metadata($attachment_id, $attachment_url)); } } return $output; }