PHP загрузка изображения в WordPress приводит к отображению пустого файла изображения в библиотеке мультимедиа - PullRequest
0 голосов
/ 18 января 2020

Я загружаю изображения на свой сервер из внешнего интерфейса, используя 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 КБ, и, естественно, он не имеет размеров.

Что я могу сделать, чтобы решить эту проблему?

...