web-dev-qa-db-ja.com

Laravel 5.4:storage / appに保存されているファイルを削除する方法

Storage/app/myfolder/file.jpgに保存されているファイルを削除したい。私は次のコードを試しましたが、どれも機能しません:

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);

助けてください。

13
Ajmal Razeel

次のように、ユーザーLaravels facade Storageを使用できます。

Storage::delete($file);

または、これを使用することができます:

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

ディレクトリを削除したい場合、これを使用できます:

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

言及する重要な部分の1つは、最初にファイルまたはディレクトリが存在するかどうかを確認する必要があることです。

したがって、ファイルを削除する場合は、おそらく次のようにする必要があります。

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";
}
24
utdev

storage を使用します

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

Storage::delete($filename);
5
Minar Mnr

答えを見つけました。このコードはうまくいきました。

unlink(storage_path('app/foldername/'.$filename));
4
Ajmal Razeel

Deleteメソッドは、ディスクから削除する単一のファイル名またはファイルの配列を受け入れます。

use Illuminate\Support\Facades\Storage;

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

Storage::delete(['file.jpg', 'file2.jpg']);

必要に応じて、ファイルを削除するディスクを指定できます。

use Illuminate\Support\Facades\Storage;

Storage::disk('s3')->delete('folder_path/file_name.jpg');

ディレクトリの削除

最後に、deleteDirectoryメソッドを使用して、ディレクトリとそのすべてのファイルを削除できます。

Storage::deleteDirectory($directory);
0

このコードはうまくいきました。

use Illuminate\Support\Facades\Storage;
....
$storagePath  = Storage::disk('local')->getDriver()->getAdapter()->getPathPrefix();
if(file_exists($storagePath.$file)) unlink($storagePath.$file);
0
jamel nefzi