WordPress上传文件提示“文件是空的。请上传有内容的文件。这个错误…”

先森拿到了腾讯云的学生机,赶紧用nginx搭建好了WordPress的环境。今天试着导入WordPress的导出文件时,竟然遇到了“文件是空的。请上传有内容的文件。这个错误也有可能是因为您的php.ini禁止了上传,或其中post_max_size的值小于upload_max_filesize的值。”的错误。

文件是空的。请上传有内容...

文件是空的。请上传有内容...

下面就说说解决过程。

检查

错误提醒中也说了“可能是因为您的php.ini禁止了上传,或其中post_max_size的值小于upload_max_filesize的值”,所以我们首先要将这三条配置检查一下,做一个排除。如果能解决问题当然好,不能的话也明确了错误目标。

1.排除是否禁止了上传

php.ini的默认位置在/etc目录下,编辑打开,查看是否禁用了上传。

1
file_uploads = On

是否允许HTTP文件上传。默认值为On允许HTTP文件上传,若设置为Off当然就不能上传了。

2.排除POST上传大小设置

1
post_max_size = 8M

post 提交数据时的大小,默认值 8 MB,但你还可以增加它。此设置还会影响文件上传。上传大文件时,该值必须大于 upload_max_filesize。

3.排除最大可上传文件大小

1
upload_max_filesize = 2M

上传文件时最大限制,默认值为2M。

如果和先森一样,刚安装还没有做什么修改,那上面的三样应该都是默认值,也就是问题不出在php.ini的配置上,那么接着往下看。

DeBUG寻找错误原因

先森也懒得去找php的错误日志了,直接开启了php.ini中的错误提醒。将Off改为On则为开启了。开启后,则在屏幕上可以显示错误

1
display_errors = On

修改配置之后,重启php。

1
service php-fpm restart

这时候再重新上传,就显示出来了一条错误:

1
Fatal error: Class 'DOMDocument' not found in /usr/local/nginx/html/wp-content/plugins/wordpress-importer/parsers.php on line 61

致命错误:在wordpress的程序代码中没有发现“DOMDocument”类。

虽然不清楚是什么意思,但是先打开文件,看看第61行是什么再说吧。

1
$dom new DOMDocument;

好吧,还是不清楚是怎么回事。所以直接拿着错误提醒进行百度,强行看了两篇英文贴找到了解决方法,原来是缺少php组件。yum安装一下即可。

1
yum install -y php-xml

原来是无法识别xml文件,wordpress导出的文件就是xml格式的。

安装之后还需要重启php:

1
service php-fpm restart

再次去WordPress后台导入文章,则顺利上传了。

来源: https://www.capjsj.cn/php_ini.html

 


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。