Как отправить в папку /uploads/ wordpress изображения через $_FILES по технологии AJAX?

Рейтинг: 0Ответов: 0Опубликовано: 01.06.2023

Создаю плагин на wordpress. Появилась необходимость отправлять изображения, загруженные пользователем через <input type="file" ... /> в корневую папку wordpress /wp-content/uploads/. С этим проболем, так сказать, не было. У меня за это отвечает следующий фрагмент кода в файле admin.php:

<form enctype="multipart/form-data" action="" method="POST">
        <?php wp_nonce_field('my_file_upload', 'fileup_nonce'); ?>
        <input name="my_file_upload" type="file" />
        <input type="submit" value="Загрузить файл" />
    </form>

а также:

<?php
        if (wp_verify_nonce($_POST['fileup_nonce'], 'my_file_upload')) {

            if (!function_exists('wp_handle_upload'))
                require_once(ABSPATH . 'wp-admin/includes/file.php');

            $file = &$_FILES['my_file_upload'];

            $overrides = ['test_form' => false];

            $movefile = wp_handle_upload($file, $overrides);

            if ($movefile && empty($movefile['error'])) {
                echo "Файл был успешно загружен.\n";
                print_r($movefile);
            } else {
                echo "Возможны атаки при загрузке файла!\n";
            }
        }
        ?>

Проблема заключается в том, что аналогичные действия надо проводить асинхронно по технологии AJAX. Уже пересмотрел кучу интернет-ресурсов. Однозначного ответа не нашёл. Везде либо просто пишут про AJAX и wordpress, либо просто про AJAX и PHP без wordpress. То есть мне надо, чтобы при нажатии на <input type="submit" value="Загрузить файл" /> вся страница не обновлялась, а обновлялась только необходимая часть, что, собственно говоря, и подразумевает под собой технология AJAX. Пробовал делать аналогичное без wordpress на чистом jQuery и PHP - так всё получилось, но в wordpress же многое по-другому. Буду рад помощи!

Ответы

Ответов пока нет.