WordPress文件上传总是给PHP.ini错误
Posted
技术标签:
【中文标题】WordPress文件上传总是给PHP.ini错误【英文标题】:WordPress File Upload always give PHP.ini error 【发布时间】:2014-04-23 02:44:17 【问题描述】:使用 media_sideload_image 方法(从 URL 保存)效果很好,但对于使用 WP 函数的实际上传 array(1) ["error"]=> string(1) "s" 它总是给我以下信息。
["error"]=> string(212) "文件为空,请上传更多内容 重大的。此错误也可能是由禁用上传引起的 在您的 php.ini 中或将 post_max_size 定义为小于 php.ini 中的 upload_max_filesize。”
这显然意味着有错误 - 为什么?我查看了PHP INI文件,似乎不是这样,还有其他设置方法吗?
PHP 代码
$upload_photo = $_FILE['upload_photo'];
if ( ! function_exists( 'wp_handle_upload' ) ) require_once( ABSPATH . 'wp-admin/includes/file.php' );
echo $upload_photo;
$upload_overrides = array( 'test_form' => false );
$movefile = wp_handle_upload( $upload_photo, $upload_overrides );
if ( $movefile )
echo "File is valid, and was successfully uploaded.\n";
var_dump( $movefile);
else
echo "Possible file upload attack!\n";
HTML 代码
input type='text' value='照片 URL' id='upload_photo_url' name='upload_photo_url' onclick="clear_field('upload_photo_url');" />
PHP 设置(从 phpinfo() 打印)
【问题讨论】:
从错误提示的内容开始。在您的服务器上运行php -i | grep upload_max_filesize
和php -i | grep file_uploads
的结果是什么?你为什么不在你的问题中发布一些 php.ini 设置。
@stakolee 正如我所提到的,给出的错误与 PHP ini 文件无关。 IE。它们的大小相同。我已经添加了 phpinfo 的屏幕截图,尽管如此:)
你能转储 $_FILE 变量吗?它应该是一个数组,所以回显它不应该真正向您显示任何内容。这可能有助于我们弄清楚发生了什么。
不,我不能,它返回 NULL :/
@tim.baker 这个有运气吗?我现在遇到了同样的问题,我很困惑。
【参考方案1】:
创建一个名为 phpinfo.php 的文件
将该文件保存在您的***目录中。在地址栏中输入yoursitename.com/phpinfo.php,您将获得所有php信息的列表。
一旦您知道在主机服务器或本地主机上的何处查找和保存文件 php.ini,打开该文件并搜索“post_max_size”和“upload_max_filesize”。将两者都更改为您需要上传和保存的最大文件大小。
将修改后的 php.ini 文件上传到您使用 phpinfo.php 文件发现的目录。您将需要重新启动 localhost 服务器并刷新页面。现在可以上传大文件了。
【讨论】:
【参考方案2】:我通过将以下代码添加到 <form>
标记中解决了这个问题。
enctype="multipart/form-data"
【讨论】:
以上是关于WordPress文件上传总是给PHP.ini错误的主要内容,如果未能解决你的问题,请参考以下文章
Wordpress 错误,CentOs 服务器:上传的文件超出了 php.ini 中的 upload_max_filesize 指令
cpanel 上传的文件超过了php.ini中的upload_max_filesize指令
ini 设置WordPress的上传最大大小。创建一个php.ini文件并将此文件放在wp-admin /文件夹中