如何在Laravel中訪問公共目錄?
要從公共目錄獲取檔案列表,可以使用**File外觀類**。要使用它,你需要使用以下語句包含**File**類:
use Illuminate\Support\Facades\File;
假設公共資料夾中包含以下檔案:

示例1
以下程式嘗試從**public_folder**檢索所有影像:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Support\Facades\Storage; class UserController extends Controller { public function index() { $images = \File::allFiles(public_path('images')); print_r($images); } }
輸出
以上程式碼的輸出如下:
Array (
[0] => Symfony\Component\Finder\SplFileInfo Object (
[relativePath:Symfony\Component\Finder\SplFileInfo:private] =>
[relativePathname:Symfony\Component\Finder\SplFileInfo:private] => flower.jpg
[pathName:SplFileInfo:private] => C:\xampp\htdocs\laraveltest\public\images\flower.jpg
[fileName:SplFileInfo:private] => flower.jpg
)
)
示例2
要從public_folder獲取所有CSS檔案,你只需要將字串'**css**'傳遞給**public_path()**方法。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller { public function index() { $css_files = \File::allFiles(public_path('css')); print_r($css_files); } }
輸出
以上程式碼的輸出為:
Array (
[0] => Symfony\Component\Finder\SplFileInfo Object (
[relativePath:Symfony\Component\Finder\SplFileInfo:private] =>
[relativePathname:Symfony\Component\Finder\SplFileInfo:private] => test.css
[pathName:SplFileInfo:private] => C:\xampp\htdocs\laraveltest\public\css\test.css
[fileName:SplFileInfo:private] => test.css
)
)
示例3
要從公共資料夾獲取所有檔案,程式碼如下:
$path = public_path(); $files = File::allFiles($path);
**<$files>**變數是一個數組,包含public/資料夾中所有檔案的詳細資訊。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\File; class UserController extends Controller { public function index() { $path = public_path(); $files = File::allFiles($path); print_r($files); } }
輸出
以上程式碼的輸出為:
Array(
[0] => Symfony\Component\Finder\SplFileInfo Object(
[relativePath:Symfony\Component\Finder\SplFileInfo:private] => css
[relativePathname:Symfony\Component\Finder\SplFileInfo:private] => css\test.css
[pathName:SplFileInfo:private] => C:\xampp\htdocs\laraveltest\public\css\test.css
[fileName:SplFileInfo:private] => test.css
)
[1] => Symfony\Component\Finder\SplFileInfo Object(
[relativePath:Symfony\Component\Finder\SplFileInfo:private] =>
[relativePathname:Symfony\Component\Finder\SplFileInfo:private] => favicon.ico
[pathName:SplFileInfo:private] => C:\xampp\htdocs\laraveltest\public\favicon.ico
[fileName:SplFileInfo:private] => favicon.ico
)
[2] => Symfony\Component\Finder\SplFileInfo Object(
[relativePath:Symfony\Component\Finder\SplFileInfo:private] => images
[relativePathname:Symfony\Component\Finder\SplFileInfo:private] => images\flower.jpg
[pathName:SplFileInfo:private] => C:\xampp\htdocs\laraveltest\public\images\flower.jpg
[fileName:SplFileInfo:private] => flower.jpg
)
[3] => Symfony\Component\Finder\SplFileInfo Object(
[relativePath:Symfony\Component\Finder\SplFileInfo:private] =>
[relativePathname:Symfony\Component\Finder\SplFileInfo:private] => index.php
[pathName:SplFileInfo:private] => C:\xampp\htdocs\laraveltest\public\index.php
[fileName:SplFileInfo:private] => index.php
)
[4] => Symfony\Component\Finder\SplFileInfo Object(
[relativePath:Symfony\Component\Finder\SplFileInfo:private] =>
[relativePathname:Symfony\Component\Finder\SplFileInfo:private] => robots.txt
[pathName:SplFileInfo:private] => C:\xampp\htdocs\laraveltest\public\robots.txt
[fileName:SplFileInfo:private] => robots.txt
)
)
示例4
你可以使用**scandir()**來獲取public/images資料夾中的所有檔案。操作方法如下:
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { public function index() { $path = public_path('images'); $files = scandir($path); print_r($files); } }
輸出
以上程式碼的輸出為:
Array ( [0] => . [1] => .. [2] => flower.jpg )
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP