2017-07-12 206 views
3

我想删除存储在storage/app/myfolder/file.jpg中的文件。我曾尝试以下代码,但这些都不作品:Laravel 5.4:如何删除存储在存储/应用程序中的文件

use File  
$file_path = url().'/storage/app/jobseekers_cvs/'.$filename; 
unlink($file_path); 

use File 
$file_path = public_path().'/storage/app/myfolder/'.$filename; 
unlink($file_path); 

use File 
$file_path = app_path().'/storage/app/myfolder/'.$filename; 
unlink($file_path); 

而且,

File::Delete('/storage/app/myfolder/'.$filename); 

请帮助。

回答

2

使用storage

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

Storage::delete($filename); 
+0

我该怎么设置路径。像存储/应用程序/我的文件夹/文件名 –

+0

[这](https://laravel.com/docs/5.4/filesystem#retrieving-files)将帮助你 –

1

我找到了答案。此代码为我工作。

unlink(storage_path('app/foldername/'.$filename)); 
3

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

Storage::delete($file); 

或者你可以使用这样的:如果你想删除您可以使用此目录

unlink(storage_path('app/folder/'.$file)); 

rmdir(storage_path('app/folder/'.$folder); 

要提到的一个重要部分是,您应该先检查文件或目录是否存在。

所以,如果你想删除一个文件,你可能应该这样做:

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

如果你想请检查是否是一个目录做到这一点:

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"; 
} 
相关问题