序言
自己的博客自从换了个主题后就出现了上传附件总是失败的毛病,然后掉入坑中,最近又查阅了一些文献,终于解决了这个问题。
正文
查找原因
经过仔细查找发现是isAppEngine()这个函数的问题,然后在/var/Typecho/Common.php找到这个函数,他是这样定义的:
public static function isAppEngine()
{
return !empty($_SERVER['HTTP_APPNAME']) // SAE
|| !!getenv('HTTP_BAE_ENV_APPID') // BAE
|| !!getenv('SERVER_SOFTWARE') // BAE 3.0
|| (ini_get('acl.app_id') && class_exists('Alibaba')) // ACE
|| (isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'],'Google App Engine') !== false) // GAE
;
}
也就是说如果当前的服务器环境不是SAE、BAE、ACE及非国内常见虚拟主机,如过是则不让上传附件,修改方法就是把这个函数内容改为:
public static function isAppEngine()
{
return false;
}
然后重启服务器。
后续
还不行的话,则需要找到根目录下的usr/uploads(我的文件夹不见了所以也是导致出现上传失败的原因,所以我手动创建了一个uploads文件夹)把这个文件的权限改为777,并重启服务器
附页
如果嫌弃上传附加大小太小的话可以找到PHP.ini文件,修改一下为三项:
upload_max_filesize = 1000M;
post_max_size = 1000M;
max_execution_time=600;
这样最大上传附件大小就为1000M了