4

更新到 WordPress 3.5 后,以非管理员用户身份使用“添加媒体”按钮上传文件时,我开始收到以下错误:

错误:上传时发生错误。请稍后再试。

图像似乎已完成上传,但最后会出现此错误消息。

这不会发生在管理员身上,只会发生在其他角色身上。我什至尝试为其他角色提供完整的管理功能,但错误仍然出现。

这是一个错误吗?还是我错过了什么?

4

5 回答 5

8

经过多次反复试验,我终于找到了适合我的解决方案。

首先,我发现为自定义用户角色上传文件需要以下角色功能:

$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。

因此,从本质上讲,这允许非管理员用户从前端使用新的媒体上传器,而不允许他们访问仪表板。

它还限制了他们对媒体库的访问,这对我来说也很重要。

于 2013-03-08T11:03:45.990 回答
1

这可能是由几个不同的因素引起的,这通常表明:

文件太大

有关如何增加最大允许文件大小的信息,请参阅线程。

没有足够的磁盘空间

检查您的服务器硬盘驱动器是否已满。

写权限不足

确保 PHP 和您的网络服务器对 wp-uploads 文件夹具有写入权限。

于 2013-02-08T08:32:46.540 回答
1

将 PHP 更新到 5.3 后,我刚刚遇到此错误。我的问题是short_open_tag。

默认情况下它是关闭的。我启用了它,现在一切正常。

于 2013-11-27T23:37:29.137 回答
0

我解决了我的问题,

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

这条消息我在上传时收到了萤火虫检查。

   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"

所以我在上传的那一刻在萤火虫中得到了这个。

于 2015-03-01T02:46:09.473 回答
0

请参阅此链接以获取更多详细信息-它对我有所帮助https://sebastian.expert/fix-wordpress-an-error-occurred-in-the-upload-please-try-again-later/

基本上它所说的是在上传文件后(出现错误消息时)使用 Chrome 或 Firefox 中的开发人员工具查看来自 async_upload.php 文件的响应。它以 JSON 格式返回错误详细信息。有了详细信息,解决问题会更容易、更快。

于 2015-07-17T16:47:25.200 回答