Laravel 5.4:如何删除存储在应用程序中的文件

Ajm*_*eel 15 php laravel laravel-5.3

我想删除存储在storage/app/myfolder/file.jpg中的文件.我尝试过以下代码,但这些都不起作用:

use File    
$file_path = url().'/storage/app/jobseekers_cvs/'.$filename;
unlink($file_path);
Run Code Online (Sandbox Code Playgroud)

use File
$file_path = public_path().'/storage/app/myfolder/'.$filename;
unlink($file_path);
Run Code Online (Sandbox Code Playgroud)

use File
$file_path = app_path().'/storage/app/myfolder/'.$filename;
unlink($file_path);
Run Code Online (Sandbox Code Playgroud)

并且,

File::Delete('/storage/app/myfolder/'.$filename);
Run Code Online (Sandbox Code Playgroud)

请帮忙.

utd*_*dev 25

你可以Storage像这样用户Laravels门面:

Storage::delete($file);
Run Code Online (Sandbox Code Playgroud)

或者你可以用这个:

unlink(storage_path('app/folder/'.$file));
Run Code Online (Sandbox Code Playgroud)

如果要删除目录,可以使用:

rmdir(storage_path('app/folder/'.$folder);
Run Code Online (Sandbox Code Playgroud)

需要提及的一个重要部分是,您应首先检查文件或目录是否存在.

因此,如果要删除文件,您应该这样做:

if(is_file($file))
{
    // 1. possibility
    Storage::delete($file);
    // 2. possibility
    unlink(storage_path('app/folder/'.$file));
}
else
{
    echo "File does not exist";
}
Run Code Online (Sandbox Code Playgroud)

如果你想检查它是一个目录这样做:

if(is_dir($file))
{
    // 1. possibility
    Storage::delete($folder);
    // 2. possibility
    unlink(storage_path('app/folder/'.$folder));
    // 3. possibility
    rmdir(storage_path('app/folder/'.$folder));
}
else
{
    echo "Directory does not exist";
}
Run Code Online (Sandbox Code Playgroud)


Min*_*Mnr 6

使用储存空间

//demo 
use Illuminate\Support\Facades\Storage;

Storage::delete($filename);
Run Code Online (Sandbox Code Playgroud)

其它的办法,

unlink(storage_path('app/folder/'.$filename));
Run Code Online (Sandbox Code Playgroud)

  • 我该如何设置路径。像存储/应用程序/我的文件夹/文件名 (2认同)

Ajm*_*eel 6

我找到了答案.这段代码对我有用.

unlink(storage_path('app/foldername/'.$filename));
Run Code Online (Sandbox Code Playgroud)


Mat*_*ves 5

delete 方法接受要从磁盘中删除的单个文件名或文件数组:

use Illuminate\Support\Facades\Storage;

Storage::delete('file.jpg');

Storage::delete(['file.jpg', 'file2.jpg']);
Run Code Online (Sandbox Code Playgroud)

如有必要,您可以指定应从中删除文件的磁盘:

use Illuminate\Support\Facades\Storage;

Storage::disk('s3')->delete('folder_path/file_name.jpg');
Run Code Online (Sandbox Code Playgroud)

删除目录

最后,deleteDirectory 方法可用于删除目录及其所有文件:

Storage::deleteDirectory($directory);
Run Code Online (Sandbox Code Playgroud)