CodeIgniter中统计文件夹文件数量失败,求助问题原因
问题分析与解决
问题根源
FilesystemIterator 要求传入服务器本地文件系统的物理路径,但你使用了 base_url().'uploads',这会返回HTTP访问URL(比如http://localhost/drive/uploads)。PHP无法通过URL遍历本地目录,因此抛出"failed to open dir: not implemented"错误。
解决方案
在CodeIgniter中,使用框架提供的常量获取本地路径:
FCPATH:指向项目根目录(即index.php所在的目录)- 若uploads文件夹在项目根目录下,直接使用
FCPATH.'uploads'即可
修改后的代码:
<?php $fi = new FilesystemIterator(FCPATH.'uploads', FilesystemIterator::SKIP_DOTS); printf("There were %d Files", iterator_count($fi)); ?>
补充说明
- 确保uploads文件夹存在,且PHP进程拥有该文件夹的读取权限,否则会触发权限相关错误
base_url()用于生成前端可访问的资源URL,不能用于本地文件系统操作
内容的提问来源于stack exchange,提问作者ZNO
相关产品推荐
相关产品推荐

