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);
助けてください。
次のように、ユーザー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";
}
storage を使用します
//demo
use Illuminate\Support\Facades\Storage;
Storage::delete($filename);
答えを見つけました。このコードはうまくいきました。
unlink(storage_path('app/foldername/'.$filename));
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);
このコードはうまくいきました。
use Illuminate\Support\Facades\Storage;
....
$storagePath = Storage::disk('local')->getDriver()->getAdapter()->getPathPrefix();
if(file_exists($storagePath.$file)) unlink($storagePath.$file);