我有一个表单供用户将文件上传到该文件夹中。 HTML和PHP代码如下:
<form enctype="multipart/form-data" method="post" action="test.php">
<input type="text" name="name"/><br/>
<input type="file" name="photo" /><br/>
<input type="submit"/>
</form>
<?php //test.php
move_uploaded_file($_FILES["photo"]["tmp_name"], "testFolder/".$_POST["name"]);
?>
上传表单效果很好,上传的文件位于 testFolder / 文件夹中。
现在我想使用 glob()函数来获取文件夹中的所有文件名。
<?php
foreach(glob("testFolder/*.*") as $file) {
echo $file."<br/>";
}
?>
然而,它并没有回应任何东西。
glob()函数适用于其他文件夹,其中包含现有文件,而不包含上传文件。
但是为什么它不能用于上传文件的这个文件夹呢?
答案 0 :(得分:0)
Possbile通配符扩展可能是个问题。
可能是glob不允许使用通配符扩展,我在文档中没有看到任何提及。你试过一个目录迭代器吗?
$dir = new DirectoryIterator(__DIR__.'/testFolder);
foreach ($dir as $file) {
echo $file->getFilename();
}
更新:路径不是问题
您正在使用相对文件路径,因此glob可能无法找到您要搜索的目录。
调用该函数的脚本需要位于&lt; testFolder &#39;的父目录中。或者你需要使用这样的绝对路径。
<?php
foreach(glob("/absolute/path/to/testFolder/*.*") as $file) {
echo $file."<br/>";
}
?>
如果您确实想使用相对路径,可以执行以下操作:
<?php
//__DIR__ is a PHP super constant that will get the absolute directory path of the script being ran
// .. = relative, go up a folder level
foreach(glob(__DIR__."/../testFolder/*.*") as $file) {
echo $file."<br/>";
}
?>
显然上面的路径只是示例,但应该让你走上正轨。
希望这有帮助
答案 1 :(得分:0)
因为我没有为上传的文件提供扩展名,所以String
没有得到任何内容。
两种解决方案:
$ ext = strrchr($ _ FILES [“photo”] [“name”],“。”);
move_uploaded_file($ _ FILES [ “相片”] [ “tmp_name的值”], “testFolder /".$_ POST [” 名称“] $ EXT);
然后,glob("testFolder/*.*")
将能够获得这些带有扩展名的上传文件。
glob("testFolder/*.*")
更改为glob("testFolder/*.*")