Я загружаю изображения на свой сервер из внешнего интерфейса, используя FormData в JavaScript, и обрабатываю данные формы, используя PHP для управления данными, полученными из формы.
Я вижу изображение на сервере, когда я использую print_r($_FILES['product_category]);
, его размер такой же, как изображение, которое я загружаю. Я использую следующий код для обработки файла:
$file = $_FILES['product_thumbnail'];
$filename = $_FILES['product_thumbnail']['name'];
$upload_file = wp_upload_bits($filename, null, file_get_contents($file));
$upload_directory = wp_upload_dir();
if (!$upload_file['error']) {
$wp_filetype = wp_check_filetype($filename, null );
$attachment = array(
'guid' => $wp_upload_dir['url'].'/'.$filename,
'post_mime_type' => $wp_filetype['type'],
'post_parent' => $post_id,
'post_title' => preg_replace('/\.[^.]+$/', '', $filename),
'post_content' => '',
'post_status' => 'inherit'
);
$attachment_id = wp_insert_attachment( $attachment, $upload_file['file'], $post_id, true );
if (!is_wp_error($attachment_id)) {
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
$attachment_data = wp_generate_attachment_metadata( $attachment_id, $upload_file['file'] );
wp_update_attachment_metadata( $attachment_id, $attachment_data );
}
}
print_r($upload_file);
Последнее утверждение print_r
показывает это:
(
[file] => C:\windows\path\to\file\on/server/image-name.jpg
[url] => http://localhost/path/to/file/image-name.jpg
[type] => image/jpeg
[error] =>
)
Я могу подтвердить, что библиотека мультимедиа также подтверждает это изображение местоположение, а также почтовый идентификатор и точное имя файла. Я проверил каталог загрузки, и он также содержит файл изображения, но файл не имеет содержимого. Размер файла составляет 0 КБ, и, естественно, он не имеет размеров.
Что я могу сделать, чтобы решить эту проблему?