typecho 不能上传附件问题

typecho 不能上传附件问题

  最近不知道瞎点了什么东西,结果点出来一个typecho,看着挺简洁的,速度也不错,然后。。。就深深的陷入爬坑之旅。

  相信用typecho的有很多个人站长,只是想做个blog记录下自己的生活工作点滴。因此相比有很多人会用SAE、GAE、BAE等空间去搭建自己的网站。我用的也是万网最便宜的一款虚拟主机(共享版,299/年)。

  然后搭建好了自己的博客,想着先写篇文章试试效果吧,结果到传图片的时候,入坑了。图片怎么也传不上去。各种百度,查各种官方论坛,结果都不奏效。无奈,只能自己去调试他代码了,找了半天。

    终于发现在程序是在 /var/Widget/upload.php的第99行

if (!self::checkFileType($ext) || Typecho_Common::isAppEngine()) {

 然后想,自己后台的设置的后缀都是包含在内的,肯定不是前边的判断语句,然后就找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;
    }

   测试,图片上传毫无问题。

   至此,图片不能上传问题完美解决。

但是,我想不通的是为什么typecho团队要这样做。想在的千把块钱一年的虚拟空间动辄几十个G的硬盘,月流量搞不好已经不限制了,如果站长在上传图片的时候对图片稍作压缩,只要不是图片站,基本可以达到日访问1000IP了。


回复列表



回复操作






   

发布时间:2016-12-29 19:47:49