首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Yii2 -如何列出文件夹中的文件

Yii2 -如何列出文件夹中的文件
EN

Stack Overflow用户
提问于 2014-12-08 13:56:26
回答 1查看 19.7K关注 0票数 17

嗨,我正在制作一个Yii2基本应用程序,在管理区域有一个文件上传表单。文件上传将文件发送到app/web/上载。我遵循了关于从samdark上传文件的很棒的教程。在这里可以看到: https://github.com/yiisoft/yii2/blob/master/docs/guide/input-file-upload.md

我需要做的是创建一个视图,将超链接呈现到上传文件夹.中的每个文件。

在Yii1.xx中,有一个扩展名为Cfile的扩展名为Cfile,非常方便。我用了好几个应用程序来做我现在想做的事。

使用Cfile,我能够编写如下代码:

$cfileDir = Yii::app()->file-> set (' pdfs /');// set pdfs作为目标文件夹

$files =$cfileDir->getContent();

getContents()方法很棒,因为它允许我稍后应用一个foreach循环并列出文件夹中的所有文件。

在Yii2中,如何在上传文件夹中执行类似的操作,即该文件夹中的文件列表,并在视图中创建超链接。

要缓存视图中的超链接,我可以使用Html::a(),但是要获取视图中的所有文件,我不知道如何做。

有什么主意吗?谢谢。

编辑

用阿里.的大提示解决了问题。

这里是完整的代码块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
    $files=\yii\helpers\FileHelper::findFiles('uploads/');
    if (isset($files[0])) {
        foreach ($files as $index => $file) {
            $nameFicheiro = substr($file, strrpos($file, '/') + 1);
            echo Html::a($nameFicheiro, Url::base().'/uploads/'.$nameFicheiro) . "<br/>" . "<br/>" ; // render do ficheiro no browser
        }
    } else {
        echo "There are no files available for download.";
    }
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-08 14:18:37

Yii2中,您可以通过使用FileHelper类来实现这一点,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$files=\yii\helpers\FileHelper::findFiles('/path/to');

现在,将所有文件列表作为数组放入$files变量中。

方法,返回在指定目录和子目录下找到的文件.

另一个例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\yii\helpers\FileHelper::findFiles('.',['only'=>['*.php','*.txt']]);

上面的示例列出了所有只有phptxt扩展名的文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\yii\helpers\FileHelper::findFiles('.',['except'=>['*.php','*.txt']]);    

上面的示例列出了所有扩展名的文件,但phptxt扩展名除外。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\yii\helpers\FileHelper::findFiles('.',['recursive'=>FALSE]);

上面的示例没有列出子目录下的文件。

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27367726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文