Я безуспешно искал ответ на этот вопрос.Я хочу загрузить файлы из контактной формы 7 в папку в корне.Я могу загрузить файлы в папку загрузки, но это неудовлетворительно.Я нашел код, который изменит расположение папки, но не может понять, как загрузить вложение в этот файл.
$folderPath = "/candidates//candidate_id/photos/";
mkdir(ABSPATH.$folderPath, 0777, true);
$filename = $image_name;
if ($filename > '') {
require(ABSPATH . 'wp-admin/includes/admin.php');
$wp_filetype = wp_check_filetype(basename($filename), null);
$attachment = array(
'guid' => $wp_upload_dir['url'] . '' . basename( $filename ),
'post_mime_type' => $wp_filetype['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment($attachment, $filename, $newpostid);
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata($attach_id, $filename);
wp_update_attachment_metadata($attach_id, $attach_data);
//Define the new Thumbnail can be also a ACF field
update_post_meta($newpostid, "_thumbnail_id", $attach_id);
}
Появляется новый каталог, но изображения все равно остаются в папке загрузки.Я не вижу, где определить путь к новой папке в условии if ($ filename.
. Теперь я могу загрузить в пользовательскую папку, но разрешение файла для изображения равно 0400. Как это изменить?:
'$folderPath = "/candidates//candidate_id/photos/";
mkdir(ABSPATH.$folderPath, 0777, true);
$filename = $image_name;
if ($filename > '') {
require(ABSPATH . 'wp-admin/includes/admin.php');
$wp_filetype = wp_check_filetype(basename($filename), null);
$attachment = array(
'guid' => $wp_upload_dir['url'] . '' . basename( $filename ),
'post_mime_type' => $wp_filetype['type'],
'post_title' => preg_replace('/\.[^.]+$/', '', basename($filename)),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment($attachment, $filename, $newpostid);
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata($attach_id, $filename);
wp_update_attachment_metadata($attach_id, $attach_data);
//Define the new Thumbnail can be also a ACF field
update_post_meta($newpostid, "_thumbnail_id", $attach_id);
}
Появляется новый каталог, но изображения по-прежнему остаются в папке загрузки. Я не вижу, где определить путь к новой папке в условии if ($ filename.
Iпробовал следующее, которое загружает в новый каталог, но фотография имеет разрешение 0400. Как я могу изменить на 0644?
`
$folderPath = "/candidates/".$time."/photos/";
mkdir(ABSPATH.$folderPath, 0755, true);
$destination= ABSPATH.$folderPath;
// save any attachments to a temp directory
if(strlen($image_name) > 0 and !ctype_space($image_name)) {
$mail_attachments = explode(" ", $image_name);
foreach($mail_attachments as $attachment) {
$uploaded_file_path = ABSPATH . 'wp-content/uploads/wpcf7_uploads/' . $attachment;
$new_filepath = $destination .'/'. $attachment;
rename($image_location, $new_filepath);
}
}`