我尝试了一堆方法来删除图像,但laravel因为某些原因忽略了删除部分。我试图看看它是否与dd($filename)
建立链接,并且链接正确。我也尝试了php
unlink
,但我有问题通过它的path
Storage::delete('storage/images/'.$filename);
这是我尝试和laravel行为像它de
这可能是路径问题或文件权限问题:
$exists = Storage::exists('storage/images/'.$filename);
if($exists){
Storage::delete('storage/images/'.$filename);
//file should be deleted here.... if not check permissions in storage path
//webserver sys user should have +r+w on storage path
}else{
echo "file not found in ".storage_path('storage/images/').$filename;
}
您应该提供更多信息。检查你是否正在做
use Illuminate\Support\Facades\Storage;
之前
Storage::delete('storage/images/'.$filename);
也许你有一些错误或其他调试信息?
添加此代码以使用存储:
use Illuminate\Support\Facades\Storage;
然后通过以下代码找到该文件:
$file = Storage::exists('storage/images/'.$filename);
然后删除文件,如果存在:
if ($file) {Storage::delete('storage/images/'.$filename)}
else {
return "File Not exist";
}
N:B确保您要删除的文件具有适当的权限
首先找到特定id的数据例如
$post = \App\Post::find($id);
unlink(public_path().'/uploads/post/'.$post->image);
$post->delete();
我最终使用原始的PHP方式来做到这一点。
unlink('storage/images/'.$filename);
unlink
工作得很好,并没有完成它所需的设置。