嗨,我正在制作一个Yii2 Basic应用程序,并在管理区域中有一个文件上传表格。 文件上传会将文件发送到app / web / uploads。我遵循了有关从samdark上传文件的出色教程。可以在这里看到:https : //github.com/yiisoft/yii2/blob/master/docs/guide/input-file-upload.md
我需要做的是创建一个视图,该视图呈现到上载文件夹中每个文件的超链接。
在Yii1.xx中,有一个用于处理文件的扩展名为Cfile,非常方便。我在几个应用程序中使用过,现在可以做我想要的。
使用Cfile,我能够编写如下代码:
$ cfileDir = Yii :: app()-> file-> set('pdfs /'); //将pdfs设置为目标文件夹
$ files = $ cfileDir-> getContents();
getContents()方法很棒,因为它稍后让我应用一个foreach循环并列出文件夹中的所有文件。
在Yii2中,如何在上载文件夹中执行类似的操作,即该文件夹中的文件列表并在视图中创建超链接。
要创建视图中的超链接,我可以使用Html :: a(),但是要获取其中的所有文件,我不知道该怎么做。
有任何想法吗 ??谢谢。
编辑
用ALI的尖端解决了。
这是完整的代码块
<?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.";
}
?>
在Yii2
可以使用实现这个FileHelper类象下面这样:
$files=\yii\helpers\FileHelper::findFiles('/path/to');
现在,您将所有文件列表$files
作为数组放入变量中。
findFiles()
方法,返回在指定目录和子目录下找到的文件。
另一个例子:
\yii\helpers\FileHelper::findFiles('.',['only'=>['*.php','*.txt']]);
上面的示例仅列出所有带有php
和txt
扩展名的文件。
\yii\helpers\FileHelper::findFiles('.',['except'=>['*.php','*.txt']]);
上面的示例列出了具有php
和txt
扩展名以外的所有扩展名的所有文件。
\yii\helpers\FileHelper::findFiles('.',['recursive'=>FALSE]);
上面的示例未列出子目录下的文件
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句