Laravel 5 从目录中的所有文件获取大小
Laravel 5 Get size from all files inside a directory
我试图在 laravel 中创建一个简单的文件管理器,实际上我只想查看 'files' 文件夹中的所有文件,并使用 laravel 存储我设法获得了文件夹内所有文件的名称,但我想获取更多数据,例如每个文件的大小。
控制器:
public function showFiles() {
$files = Storage::disk('publicfiles')->files();
return view('files')->with('files', $files);
}
查看:
@foreach($files as $file)
<tr>
<td>{{$file}}</td>
<td></td>
<td class="actions-hover actions-fade">
<a href=""><i class="fa fa-download"></i></a>
</td>
</tr>
@endforeach
正如我所说,我想获得尺寸,但我怎么能那样做,我很难在视图中处理它,但我真的不想那样做。
话虽这么说,我其实知道怎么做:
@foreach($files as $file)
<tr>
<td>{{$file}}</td>
<td>
<?php
$size = Storage::disk('publicfiles')->size($file);
echo $size;
?>
</td>
<td class="actions-hover actions-fade">
<a href=""><i class="fa fa-download"></i></a>
</td>
</tr>
@endforeach
但是我认为在视图中这样做是不对的,对吗?
是的,这样做并不是一个好主意。只需像这样更改您的控制器方法:
public function showFiles() {
$files_with_size = array();
$files = Storage::disk('publicfiles')->files();
foreach ($files as $key => $file) {
$files_with_size[$key]['name'] = $file;
$files_with_size[$key]['size'] = Storage::disk('publicfiles')->size($file);
}
dd($files_with_size);
}
或者,您甚至可以为此创建一个辅助函数。
我试图在 laravel 中创建一个简单的文件管理器,实际上我只想查看 'files' 文件夹中的所有文件,并使用 laravel 存储我设法获得了文件夹内所有文件的名称,但我想获取更多数据,例如每个文件的大小。
控制器:
public function showFiles() {
$files = Storage::disk('publicfiles')->files();
return view('files')->with('files', $files);
}
查看:
@foreach($files as $file)
<tr>
<td>{{$file}}</td>
<td></td>
<td class="actions-hover actions-fade">
<a href=""><i class="fa fa-download"></i></a>
</td>
</tr>
@endforeach
正如我所说,我想获得尺寸,但我怎么能那样做,我很难在视图中处理它,但我真的不想那样做。
话虽这么说,我其实知道怎么做:
@foreach($files as $file)
<tr>
<td>{{$file}}</td>
<td>
<?php
$size = Storage::disk('publicfiles')->size($file);
echo $size;
?>
</td>
<td class="actions-hover actions-fade">
<a href=""><i class="fa fa-download"></i></a>
</td>
</tr>
@endforeach
但是我认为在视图中这样做是不对的,对吗?
是的,这样做并不是一个好主意。只需像这样更改您的控制器方法:
public function showFiles() {
$files_with_size = array();
$files = Storage::disk('publicfiles')->files();
foreach ($files as $key => $file) {
$files_with_size[$key]['name'] = $file;
$files_with_size[$key]['size'] = Storage::disk('publicfiles')->size($file);
}
dd($files_with_size);
}
或者,您甚至可以为此创建一个辅助函数。