Je souhaite supprimer un fichier stocké dans storage/app/myfolder/file.jpg. J'ai essayé les codes suivants mais rien de tout cela ne fonctionne:
use File
$file_path = url().'/storage/app/jobseekers_cvs/'.$filename;
unlink($file_path);
et
use File
$file_path = public_path().'/storage/app/myfolder/'.$filename;
unlink($file_path);
et
use File
$file_path = app_path().'/storage/app/myfolder/'.$filename;
unlink($file_path);
et aussi,
File::Delete('/storage/app/myfolder/'.$filename);
Veuillez aider.
Vous pouvez soit utiliser la façade Laravels Storage
comme ceci:
Storage::delete($file);
ou vous pouvez utiliser ceci:
unlink(storage_path('app/folder/'.$file));
Si vous souhaitez supprimer un répertoire, vous pouvez utiliser ceci:
rmdir(storage_path('app/folder/'.$folder);
Une partie importante à mentionner est que vous devez d'abord vérifier si le fichier ou le répertoire existe ou non.
Donc, si vous souhaitez supprimer un fichier, vous devriez probablement le faire:
if(is_file($file))
{
// 1. possibility
Storage::delete($file);
// 2. possibility
unlink(storage_path('app/folder/'.$file));
}
else
{
echo "File does not exist";
}
Et si vous voulez vérifier s'il s'agit d'un répertoire, procédez comme suit:
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";
}
Utilisez stockage
//demo
use Illuminate\Support\Facades\Storage;
Storage::delete($filename);
J'ai trouvé la réponse. Ce code a fonctionné pour moi.
unlink(storage_path('app/foldername/'.$filename));
La méthode delete accepte un seul nom de fichier ou un tableau de fichiers à supprimer du disque:
use Illuminate\Support\Facades\Storage;
Storage::delete('file.jpg');
Storage::delete(['file.jpg', 'file2.jpg']);
Si nécessaire, vous pouvez spécifier le disque sur lequel le fichier doit être supprimé:
use Illuminate\Support\Facades\Storage;
Storage::disk('s3')->delete('folder_path/file_name.jpg');
Supprimer un répertoire
Enfin, la méthode deleteDirectory peut être utilisée pour supprimer un répertoire et tous ses fichiers:
Storage::deleteDirectory($directory);
Ce code a fonctionné pour moi.
use Illuminate\Support\Facades\Storage;
....
$storagePath = Storage::disk('local')->getDriver()->getAdapter()->getPathPrefix();
if(file_exists($storagePath.$file)) unlink($storagePath.$file);