WordPress 将媒体上传到帖子问题
Posted
技术标签:
【中文标题】WordPress 将媒体上传到帖子问题【英文标题】:WordPress Upload Media to a post issue 【发布时间】:2014-02-17 08:50:50 【问题描述】:我正在为 WordPress 3.8.1 上的一个错误而苦苦挣扎。
每当我尝试将媒体上传到帖子时,它都不会添加,而是显示An error occurred in the upload. Please try again later.
。
但更奇怪的是,即使在这个问题之后,它也会显示在仪表板/媒体/库上。
我也看不到上传到我的帖子的附加媒体(编辑帖子/[添加媒体按钮])/媒体库/上传到此帖子,但在仪表板/媒体/库部分,这些旧上传的图像正确显示上传到什么帖子。
我尝试了以下方法:
从更新管理器和手动重新安装了我的本地版本和 en_US 已删除wp-includes
和 wp-admin
文件夹并手动替换它们。
我检查了wp-content/uploads
文件夹的chown 和chmod。为了确保它们正常工作,我删除了 wp-content/uploads/2014
文件夹,在第一次上传显示此错误后,该文件夹是使用正确的 chown 和 chmod 创建的,并且文件在那里 (wp-content/uploads/2014/01/26/file with resolutions.jpg
)
我已删除不需要的插件,停用所有插件和主题,切换回 WordPress 的默认插件,我什至从 SQL 重置 wp_options 处的活动插件 json 对象,但没有帮助。
我启用了 php 错误日志,没有显示任何相关内容
我已将WP_DEBUG
定义更改为true
,我什至将WP_DEBUG_DISPLAY
定义为true
,没有帮助。
当我尝试使用多上传器从 wp-admin/media-new.php
添加时,文件在“Crunching…
”步骤冻结,但旧浏览器上传工作完美。
我自己使用 CentOS 6.5 x64 管理 VPS 和托管博客。 safe_mode
设置为off
。我的 php.ini 中没有 mod_security
选项。我在php.ini
中的upload_max_filesize
设置为20M
,memory_limit
是256M
,仅托管了3 个站点,并且在测试这些站点时内存非常空。即使是 50kb 的 .jpg 图片也会出现这种情况,因此这不应该相关。
我已从干净下载的 zip 文件中重新上传了所有 wordpress 文件,但没有任何帮助。
我尝试按照建议的here 将AddType x-mapp-php5 .php .php4
添加到.htaccess
的末尾,但这根本没有帮助。
问题是,我已经尝试在同一服务器上的另一个域中进行全新安装,它可以正常工作。
可能是什么问题?我该如何解决这个问题?
提前致谢,
【问题讨论】:
你能检查一下wordpress树的用户和组所有者吗?另外,您是否知道“上传”栏达到 100%,并且 then 显示错误?您上传的图片是否正确生成了所有缩略图?检查 wp-uploads 和媒体面板,看看它们是否存在。 “当我尝试从 wp-admin/media-new.php 添加时,使用多上传器,文件在“Crunching…”步骤冻结,但旧浏览器上传工作完美。”,你能告诉我 Firebug、Inspector 的“网络”选项卡上发生了什么? @Alainus 完全没有错误。我已经检查过了。组和所有者也是正确的。奇怪的是,当我截断 wp_posts 表时,它会正确上传。但我不确定是什么导致了这个错误。 【参考方案1】:查看自定义帖子类型是否有任何 UTF-8 格式的文件。如果您将其更改为 ANSI,那应该会有所帮助,如果这是一个问题。
【讨论】:
【参考方案2】:我遇到了同样的问题,发现我的主题本身存在问题...尝试使用二十一主题执行相同的操作。如果可行,那就看看主题的functions.php中是否有冲突的代码...
如果您使用的是子主题,我可以建议制作另一个子主题,或者使用替代主题,因为根据我的经验,并非所有主题都“喜欢”被用作子主题...
【讨论】:
遗憾的是,在我的情况下,默认主题 + 所有主题都已卸载,问题仍然存在。我最终完成了全新安装并重新导入博客条目。【参考方案3】:如果您尝试上传到自定义 post-type,请将您的 functions.php 文件中的 capability_type 设置更改为“post”,它应该可以解决您的问题。
【讨论】:
不,我在自定义帖子类型上没有这个问题。这在编写默认博客文章时直接发生。【参考方案4】:检查您的 wp-content 或 wp-content/upload 文件夹的权限,如果文件夹权限不是 755,则将其更改为 755 并重新上传。希望能解决你的问题。
【讨论】:
这不是问题所在。权限是正确的,正如我所提到的,使用旧版上传它工作正常。【参考方案5】:如果您使用的是小型服务器并添加了一个名为“WP-SmushIt
”的插件,那么它肯定会导致错误。原因很简单,这个插件在优化它的过程中使用 CPU 资源来最小化图像的大小,因此它跨越了服务器有限的执行时间。解决方案很简单-> 使用更高计划的服务器或尝试更改 php 配置文件中列出的服务器执行时间。
【讨论】:
谢谢,我没有使用那个插件,我正在检查系统资源,这个阶段内存和cpu使用率都没有达到峰值。这台机器有 8 个内核 x 3GB,6GB 内存,fpm 和 nginx 配置也允许使用所有这些资源,所以我认为这不是问题。【参考方案6】:与此没有直接关系,但我现在将同一个站点移动到不同的服务器后遇到了完全相同的问题。唯一的区别是现在我一直在使用 Nginx 而不是 Apache。我之前检查过所有权,它们都是正确的(否则正常上传也不会更早)。我把这个留在这里仅供参考。
对我的新案例的修复只是更改了 Web 根目录和其中所有文件的所有权。
Nginx 和 PHP5-FPM 以同一用户:www-data
运行,该用户位于同名组:www-data
。
因此更改在这种情况下修复的文件的所有所有权:
su
chown -R www-data:www-data /path/to/wordpress/root/
问题就解决了。
我仍然不知道我的旧问题的原始原因,我不得不擦除,从清理开始并从头开始恢复帖子,插件等。
【讨论】:
【参考方案7】:我在 wordpress 中遇到了同样的问题,比如弹出窗口中没有加载媒体。然后我解决了。
我认为,有时 ajax 响应会产生问题。意味着 ajax 响应带有一些额外的内容。
Wordpress 媒体弹出窗口是由 ajax(json Response) 加载的内容,ajax 给出一些内容的响应,如样式和其他。
例如:-
<style>
.class
</style>
then json(ajax response).
所以首先在控制台中检查您的 ajax 响应。我们必须禁用所有插件,然后检查它是否工作。如果没有,则激活默认主题。因为内容来自插件和主题。
【讨论】:
这些都不起作用。控制台上没有消息,我已经停用了所有插件。我也回退到默认主题,都是一样的。我已经备份并重新安装了帖子。它为我解决了问题 某些文件无法上传,因为它适用于 ajax 和 js。如果 ajax 响应带有一些其他文本,那么 json 格式会出现一些错误。【参考方案8】:检查你的文件夹权限,和mod_security设置,也尝试增加max_execution_time和内存,
【讨论】:
你读过我试过的吗?它们都是准确的。文件夹具有正确的权限,正如我所说,它“上传并创建文件夹”,它保存图像,但它不会重定向到成功状态。我还增加了 max_execution 时间,并且 mod_security 选项是正确的。这甚至发生在只有 10 kb 的 20x20 jpg 文件上。在同一台机器上全新安装的 Wordpress 也可以完美运行。我猜这与表格更相关。 hm,我遇到了同样的问题,我在更新文件夹权限并卸载了几个插件后解决了这个问题,但你的情况很奇怪,如果网站不大/正在开发中,最好重新安装WordPress以上是关于WordPress 将媒体上传到帖子问题的主要内容,如果未能解决你的问题,请参考以下文章
php [将图像上传到媒体库]将图像上传到媒体库并将其设置为$ post_id(如果已指定)的特色图像。 #wordpress