Trong khi lưu trữ dự án Laravel trên cPanel, vấn đề truyền thống mà nhiều nhà phát triển gặp phải là đường dẫn /public
được thêm vào URL. Bởi vì trong hầu hết các trường hợp, chúng tôi đặt một dự án trực tiếp vào thư mục
use Illuminate\Support\Facades\File;0, vì vậy,
use Illuminate\Support\Facades\File;0 là thư mục gốc của trang web và đó cũng là nơi đặt ứng dụng laravel của chúng tôi
Nhưng để chạy ứng dụng Laravel, chúng ta cần trỏ tên miền gốc của mình đến thư mục
use Illuminate\Support\Facades\File;2 của laravel. Có thể thực hiện với cPanel nhưng bạn cần thực hiện một số bước mà hầu hết mọi người không biết và cũng là một quá trình tẻ nhạt. Vì vậy, để làm cho nó đơn giản, những gì bạn có thể làm là, có một cách chúng ta có thể làm điều đó thông qua tệp ____13 trong thư mục gốc của chúng tôi
Chúng tôi có thể sao chép tệp
use Illuminate\Support\Facades\File;3 từ thư mục
use Illuminate\Support\Facades\File;2 của mình và sau đó sửa đổi tệp đó để hoạt động với thư mục gốc trực tiếp và định tuyến mọi yêu cầu đến thư mục
use Illuminate\Support\Facades\File;2
Đây là tệp
use Illuminate\Support\Facades\File;3 cuối cùng,
Options -MultiViews -Indexes
RewriteEngine On
# Handle Authorization MemberHeader
RewriteCond %{Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} [.+]/$
RewriteRule ^ %1 [L,R=301]
# Remove public URL from the path
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^[.*]$ /public/$1 [L,QSA]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Bằng cách thêm tệp trên vào thư mục gốc, chúng ta có thể sử dụng dự án laravel mà không cần đường dẫn chung. Kiểm tra hai dòng sau
Để lấy danh sách tệp từ thư mục chung, bạn có thể sử dụng lớp Mặt tiền tệp. Để làm việc với nó, bạn cần bao gồm lớp Tệp bằng cách sử dụng câu lệnh sau –
use Illuminate\Support\Facades\File;
Giả sử chúng ta có các tệp sau trong thư mục chung -
ví dụ 1
Chương trình sau cố gắng truy xuất tất cả các hình ảnh từ public_folder -
đầu ra
Đầu ra cho ở trên như sau -
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 ] ]
ví dụ 2
Để lấy tất cả các tệp CSS từ public_folder, bạn chỉ cần chuyển chuỗi 'css' sang phương thức public_path[]
đầu ra
Đầu ra của đoạn mã trên là -
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 ] ]
ví dụ 3
Để lấy tất cả các tệp từ thư mục chung, mã như sau -
$path = public_path[]; $files = File::allFiles[$path];
Biến $files là một mảng chứa thông tin chi tiết về tất cả các tệp có trong thư mục chung/
đầu ra
Đầu ra của đoạn mã trên là -
________số 8Ví dụ 4
Bạn có thể sử dụng scandir[] để lấy tất cả các tệp trong thư mục công khai/hình ảnh. Nó có thể được thực hiện như hình dưới đây -