Laravel5如何从控制器访问公用文件夹

时间:2016-12-06 21:18:03

标签: image laravel path controller public

我是Laravel的新手,一些小伎俩逃脱了我。

我有一个控制器,我需要在公共文件夹中列出图片(例如: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);
    }
}

感谢您的帮助。 马克西姆

2 个答案:

答案 0 :(得分:1)

我通过使用url()之类的功能从控制器访问我的公用文件夹

url('uploads/images/user_image.png');

答案 1 :(得分: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.
}