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. Имея детали, будет легче и намного быстрее решить проблему.