我正试图在谷歌应用引擎上用php的scandir读取一个目录。文件夹"img"中的文件肯定是可以访问的,但我正在尝试获取该文件夹中所有文件的列表。怎么了?
所有文件显然都上传正确,所以app.yaml应该没问题。是PHP错误还是GAE限制?
这是我的主要php脚本,在访问我的网站的/:时运行
<?php
$dir = 'img';
if (is_dir($dir)) {
//this code is never reached:
echo "directory exists :-)";
$filenames = scandir($dir, 0);
print_r($filesnames);
} else {
echo "No such directory";
}
// this works:
echo "<div>
<img src='"/img/example.png'">
</div>";
// this works:
$files1 = scandir(getcwd());
print_r($files1);
?>
opendir($dir)也没有帮助。
这是我的应用程序
application: mypage
version: 1
runtime: php55
api_version: 1
handlers:
# image files
- url: /img/(.*'.(bmp|gif|ico|jpeg|jpg|png))
static_files: img/'1
upload: img/(.*'.(bmp|gif|ico|jpeg|jpg|png))
- url: /.*
script: helloworld.php
# this is probably redundant:
- url: /img
static_dir: img
编辑:将这一行添加到图像文件部分(不一定是img文件夹)解决了问题:application_readable:真正的
来自文档:
应用程序可读
可选。默认情况下,在静态文件处理程序中声明的文件是作为静态数据上传,并且只提供给最终用户,他们不能被应用程序读取。如果此字段设置为true,则文件为也作为代码数据上传,以便您的应用程序可以读取它们。二者都上传将根据您的代码和静态数据存储资源收费配额。
尝试将application_readable
标志添加到img
处理程序中。我不能100%确定该标志除了内容之外是否还会覆盖img
目录本身。值得一试。