http://sae.sina.com.cn/?m=counter
如果你看到计算器名称为think_queue_out_times 的数值很大,说明你设置的队列个数太小,需要调整DB_SQL_BUILD_LENGTH 配置项。
文件上传
文件上传仍然使用UploadFile扩展类库上传文件,使用方法不变。同样的代码在本地运行时将会上传到指定的目录,在SAE上运行时就会自动使用Storage服务,将文件上传到指定的Storage中。首先你需要在SAE平台上创建一个Storage的domain用于存放上传的文件:
http://sae.sina.com.cn/?m=storage
这里可以建立多个domain。而我们的文件会上传到哪个domain,是由上传路径的第一个目录名称决定的。如:
$upload->savePath = './Public/Uploads/';
会上传到名为Public的domain。你也不用在这个domain下创建Uploads文件夹,SAE的Storage服务会为你自动创建。
图片地址的问题:
我们使用UploadFile类上传图片,在本地和在SAE下图片的浏览地址是不一样的。比如有张图片地址为 "/Public/upload/1.jpg" , /Public 是一个模板替换变量, 他会被替换为Public文件夹所在目录的地址, 我们可以通过浏览器的查看源代码功能查看被替换后是什么效果。 可以看见, 替换后为 "/Public/upload/1.jpg" 。 但是在SAE上图片并没有在Public/upload目录下,而是在storage中。 我们需要将 /Public/替换为storage的域名,在SAE上才能正常显示。
我们在SAE专有配置Conf/config_sae.php文件中 定义如下代码:
<?php
return array(
'TMPL_PARSE_STRING'=>array(
'/Public/upload'=>sae_storage_root('Public').'/upload'
)
);
这样,在SAE上会把 /Public/upload 替换为storage的地址, 在SAE上图片也能正常显示。
文件删除问题:
因为上传的文件在本地和SAE存放的地方不一样,所以我们不能直接用unlink删除文件。SAE版ThinkPHP新增sae_unlink函数实现兼容。如:
sae_unlink('./Public/Uploads/xxx.jpg');
在本地运行时,会删除Public/Uploads文件夹下的图片。而在SAE上运行时,会删除domain为Public的Storage中的图片。此函数会删除哪个domian的文件也是由路径的第一个目录名称决定的。
图片处理
SAE引擎在图片处理方面也做了自动处理,在本地和SAE平台的区别如下:
| 图片功能 | 本地运行 | SAE平台 |
| 缩略图 | 调用Image类库处理 | 自动使用SaeImage服务 |
| 验证码 | 调用Image类库处理 | 自动使用SaeVcode服务 |
你完全不用去学习怎么用SaeImage生成缩略图,也不用学习SaeVcode服务怎么用,你还是按照以前的方式使用ThinkPHP进行验证码和缩略图功能就可以了。







