2016-12-06 56 views
0

我是Laravel的新手,一些小技巧让我无法逃脱。Laravel5如何从控制器访问公用文件夹

我有一个控制器,我需要列出公共文件夹中的图片(例如:public/images/album/Ecosse),但我不知道如何加入它。 我总是没有目录错误。 你能解释一下它是如何工作的吗?

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use App\Repositories\AlbumsRepository; 
use File; 

class AlbumController extends Controller 
{ 
    protected $albumsRepository; 

    public function __construct(AlbumsRepository $albumsRepository) 

    { 
     $this->albumsRepository = $albumsRepository; 
    } 
    public function show($n) 
    { 
     $album = $this->albumsRepository->getById($n); 

     $files1 = File::allFiles(asset('images/albums/'.$album->titre)); 
     foreach ($files1 as $key => $value) 
      { 
       if (!in_array($value,array(".",".."))) 
       { 
       if (is_dir($dir . DIRECTORY_SEPARATOR . $value)) 
       { 
        $result[$value] = dirToArray($dir . DIRECTORY_SEPARATOR . $value); 
       } 
       else 
       { 
        $result[] = $value; 
       } 
       } 
      } 
     return view('album')->with('album', $album); 
    } 
} 

感谢您的帮助。 Maxime

回答

0

使用RecursiveDirectoryIterator

$directory = new RecursiveDirectoryIterator(public_path('images/albums/'.$album->titre)); 
$iterator = new RecursiveIteratorIterator($directory); 
foreach ($iterator as $item) { 
    // both file and directory will be iterated. 
} 
+0

对不起已故的答案,但我在的地方,也许是改变一些东西,因为我有这个现在目录:C:\ wamp64 \ WWW \照片\ PUBLIC \图片/相册/ Ecosse。也许我需要用\替换\? –

+0

@MaximeBaude无需手动替换,Windows可以识别'\'和'/'目录分隔符。 – forehalo

相关问题