我试图在Google App Engine上使用php的scandir阅读目录。文件夹中的文件' img'绝对可以访问,但我想获取文件夹中所有文件的列表。 怎么了?
所有文件显然都已正确上传,因此app.yaml应该没问题。 是PHP错误还是GAE限制?
这是我的主要php脚本,在访问我的网站' s /:
时运行 <?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)也没有帮助。
这是我的app.yaml:
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
答案 0 :(得分:0)
<强> application_readable 强>
可选。默认情况下,在静态文件处理程序中声明的文件是 作为静态数据上传并且仅提供给最终用户,他们不能 由应用程序读取。如果此字段设置为true,则文件为 也上传为代码数据,以便您的应用程序可以读取它们。都 上传是针对您的代码和静态数据存储资源收取的 配额。
尝试将img
标记添加到img
处理程序。除了内容之外,我还不能100%确定该标志是否也会覆盖 for i in results {
print(i.interface.index)
}
目录本身。值得一试。