Wordpress: ошибка при загрузке

После обновления до WordPress 3.5 я начал получать следующую ошибку при загрузке файлов с помощью кнопки "Добавить медиа" как пользователь без прав администратора:

Ошибка: произошла ошибка при загрузке. Пожалуйста, попробуйте позже.

Изображение, похоже, завершает загрузку, но в конце появляется это сообщение об ошибке.

Это не происходит для администратора, только для других ролей. Я даже пытался предоставить другой роли полные возможности администратора, но ошибка все еще появляется.

Это ошибка? Или я что-то упустил?

5 ответов

Решение

После долгих проб и ошибок я наконец нашел решение, которое сработало для меня.

Во-первых, я обнаружил, что для загрузки файлов для пользовательских пользовательских ролей необходимы следующие возможности ролей:

$capabilites = array(

    'read'                  => true,
    'upload_files'          => true,
    'edit_published_pages'  => true,
    'edit_others_pages'     => true

);

Я не уверен, почему это требуется, но ошибка продолжала происходить без них.

Во-вторых, мне пришлось обновить функцию, которую я использовал, чтобы запретить пользователям без прав администратора доступ к панели инструментов:

function redirect_nonadmin_fromdash(){

    if($_SERVER['PHP_SELF'] == '/wp-admin/async-upload.php'){

        /* allow users to upload files */

        return true;

    } else if(get_user_role() != 'administrator'){

        /* custom function get_user_role() checks user role, 
        requires administrator, else redirects */

        wp_safe_redirect(home_url());
        exit;

    }

}

add_action( 'login_form_login', 'redirect_nonadmin_fromdash' );
add_action( 'admin_init', 'redirect_nonadmin_fromdash', 1 );

Ранее я проверял media-upload.php, но новый загрузчик медиа использует async-upload.php.

Таким образом, по сути, это позволяет пользователям без прав администратора использовать новый загрузчик мультимедиа из внешнего интерфейса, не предоставляя им доступ к панели инструментов.

Это также ограничивает их доступ к Медиатеке, что также было важно для меня.

У меня просто была эта ошибка после обновления PHP до 5.3. Проблема на мне была short_open_tag.

Это было выключено по умолчанию. Я включил его, и теперь все в порядке.

Это может быть вызвано несколькими факторами, которые обычно предполагают:

Файл слишком большой

Обратитесь к этой теме, чтобы узнать, как увеличить максимально допустимый размер файла.

Не хватает места на диске

Проверьте, заполнен ли жесткий диск вашего сервера.

Недостаточно прав на запись

Убедитесь, что у PHP и вашего веб-сервера есть права на запись в папку wp-uploads.

Я решаю свою проблему с,

sudo apt-get update
sudo apt-get install php5-gd

это сообщение я получаю в firebug проверять в момент загрузки.

   GD Library Error: imagecreatetruecolor does not exist - please contact your webhost and ask them to install the GD libraryGD Library Error: imagecreatetruecolor does not exist - please contact your webhost and ask them to install the GD library{"success":true,"data":{"id":17,"title":"yoshi","filename":"yoshi1.jpg"

так что я получаю это в firebug в момент загрузки.

Пожалуйста, смотрите эту ссылку для получения более подробной информации - мне помогло https://sebastian.expert/fix-wordpress-an-error-occurred-in-the-upload-please-try-again-later/

По сути, это говорит об использовании инструментов разработчика в Chrome или Firefox, чтобы увидеть ответ файла async_upload.php после загрузки файлов (когда появляется сообщение об ошибке). Возвращает подробности ошибки в формате JSON. Имея детали, будет легче и намного быстрее решить проблему.

Другие вопросы по тегам