这是一个创建于 4437 天前的主题,其中的信息可能已经有所发展或是发生改变。
例如我上传一个xls文件:
在本地代码getUploadFileInfo()得到的是:
["savepath"] => string(22) "./Uploads/edata/201207/"
["savename"] => string(17) "500d1725e9c09.xls"
文件上传到SAE的Storage时, savepath 没有根目录名,也就是没法获得[sae]domain,是这样:
["savepath"] => string(13) "edata/201207/"
["savename"] => string(17) "500d1725e9c09.xls"
在控制器里我要访问刚刚上传的这个文件,访问地址是 savepath + savename ,在本地测试是能读到文件的,在SAE上地址用 savepath + savename 就不能了访问了。
而在SAE上应该是: 应用Storage地址 + 文件Domain + 上面的 edata/201207/500d1725e9c09.xls
在Thinkphp官方文档中配置config_sae.php这项只是为了模板显示时能访问正确地址,但Thinkphp在控制类或模型中要访问这文件怎么办呢?是不是还得自己专门去取新浪SAE里Storage文件的方法?这不就未必了用户程序无须修改就能兼容SAE的初衷?
5 条回复 • 1970-01-01 08:00:00 +08:00
|
|
1
ElmerZhang 2012-08-13 12:33:07 +08:00
$stor = new SaeStorage(); $url = $stor->getUrl($domain, $savepath . $savename); $domain 八成是 uploads,试试。
|
|
|
2
feikeq 2012-08-13 13:09:37 +08:00
改成这样我在非SAE上就不能运行了。。。违背了用户无须修改程序就能兼容SAE的初衷...
|
|
|
4
feikeq 2012-08-13 17:11:38 +08:00
怎么判断是不是SAE?
|
|
|
5
ElmerZhang 2012-08-13 17:14:41 +08:00
SAE定义了很多常量,判断有没有那常量 比如 if(defined('SAE_ACCESSKEY'))
|