如何从 Laravel 中的公共文件夹中删除文件?

laravelphpserver side programming更新于 2025/4/29 22:52:17

您可以使用 File Facade 类。要使用 File Facade,您需要包含如下所示的类 -

use Illuminate\Support\Facades\File;

以下是示例列表,展示了如何从公共文件夹中删除文件。

公共文件夹中的文件详细信息如下 - 

示例 1

使用 File Facade 中的 delete() 方法删除文件。delete() 方法将删除给定的文件。它可以将单个文件或文件数组作为输入。您可以从公共文件夹中删除单个文件,如下所示 -

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\File; class UserController extends Controller{ public function index() { $images = \File::allFiles(public_path('images')); $deletedFile = File::delete(app_path().'/images/'.$images[1]->getFilename()); if ($deletedFile == null) { echo "File deleted"; } } }

输出

上述代码的输出是 −

File deleted

在公共文件夹中,您将看到文件 img1.jpg 不存在。

示例 2

在 php 中使用 unlink() 方法

unlink():它有助于删除给定的文件。如果给定文件名有符号引用,则也会删除该文件名。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller { public function index() { if (file_exists(public_path('images/img3.jpg'))){ $filedeleted = unlink(public_path('images/img3.jpg')); if ($filedeleted) { echo "File deleted"; } } else { echo 'Unable to delete the given file'; } } }

输出

上述代码的输出是 −

File deleted

公共文件夹中的文件如下 -

示例 3

以下示例显示如何删除公共文件夹中的文件夹。File Facade 中的 deleteDirectory() 方法用于删除文件夹。此方法将彻底删除文件夹以及文件。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Support\Facades\File; class UserController extends Controller{ public function index() { $cssfolder = public_path('css'); $folderdetails = File::deleteDirectory($cssfolder); print_r($folderdetails); } }

输出

上述代码的输出是 −

1

public_folder 如下 -

示例 4

另一个示例是帮助从给定文件夹中删除多个文件。为了测试,让我们在公共文件夹中添加一个文件夹,如下所示 -

在公共文件夹中添加了一个文件夹 testjs/。让我们删除其中的所有文件。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; use Illuminate\Support\Facades\Storage; use Illuminate\Support\Facades\File; class UserController extends Controller { public function index() { $files = File::allFiles(public_path('testjs')); print_r($files); foreach ($files as $file) { $deletedFile = File::delete(public_path('testjs/'.$file->getFilename())); } } }

输出

上述代码的输出是

Array(
   [0] => Symfony\Component\Finder\SplFileInfo Object(
      [relativePath:Symfony\Component\Finder\SplFileInfo:private] =>
      [relativePathname:Symfony\Component\Finder\SplFileInfo:private] => script2.js
      [pathName:SplFileInfo:private] => C:\xampp\htdocs\laraveltest\public\testjs\script2.js
      [fileName:SplFileInfo:private] => script2.js
   )

   [1] => Symfony\Component\Finder\SplFileInfo Object(
      [relativePath:Symfony\Component\Finder\SplFileInfo:private] =>
      [relativePathname:Symfony\Component\Finder\SplFileInfo:private] => scripts.js
      [pathName:SplFileInfo:private] => C:\xampp\htdocs\laraveltest\public\testjs\scripts.js
      [fileName:SplFileInfo:private] => scripts.js
   )
)

相关文章