Laravel 无法删除存储在存储器中的文件

Laravel 无法删除存储在存储器中的文件,laravel,file-upload,laravel-7,Laravel,File Upload,Laravel 7,一直在删除我保存到存储目录中的文件。我的谈话如下所示 配置/文件系统 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ], 这就是我保存图像的方式 if ($request-

一直在删除我保存到存储目录中的文件。我的谈话如下所示

配置/文件系统

'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],
这就是我保存图像的方式

if ($request->hasFile('image'))
    {
        $image = $request->file('image');
        Storage::disk('public')->put("/uploads/".$image->hashName(),  File::get($image));
        $input['image'] = 'uploads/' . $image->hashName();
    }

我正在使用Laravel 7,并且图像正在成功上载,请任何人向我建议删除其中存储的文件的最佳方法。

如果您希望Laravel自动管理将给定文件流式传输到您的存储位置,您可以使用
putFile
putFileAs
方法。此方法接受
illumb\Http\File
illumb\Http\UploadedFile
实例,并将自动将文件流式传输到所需位置:

use Illuminate\Http\File;
use Illuminate\Support\Facades\Storage;

// Automatically generate a unique ID for file name...
Storage::putFile('photos', new File('/path/to/photo'));

// Manually specify a file name...
Storage::putFileAs('photos', new File('/path/to/photo'), 'photo.jpg');
关于
putFile
方法,有几点需要注意。请注意,我们只指定了目录名,而不是文件名。默认情况下,
putFile
方法将生成一个唯一的ID作为文件名。因此,在您的情况下,不需要使用
$image->hasName()

putFile()
还返回保存文件的路径。所以

$path = Storage::putFile('photos', new File('/path/to/photo'));
//To delete it
Storage::delete($path);

如果希望Laravel自动管理将给定文件流式传输到存储位置,可以使用
putFile
putFileAs
方法。此方法接受
illumb\Http\File
illumb\Http\UploadedFile
实例,并将自动将文件流式传输到所需位置:

use Illuminate\Http\File;
use Illuminate\Support\Facades\Storage;

// Automatically generate a unique ID for file name...
Storage::putFile('photos', new File('/path/to/photo'));

// Manually specify a file name...
Storage::putFileAs('photos', new File('/path/to/photo'), 'photo.jpg');
关于
putFile
方法,有几点需要注意。请注意,我们只指定了目录名,而不是文件名。默认情况下,
putFile
方法将生成一个唯一的ID作为文件名。因此,在您的情况下,不需要使用
$image->hasName()

putFile()
还返回保存文件的路径。所以

$path = Storage::putFile('photos', new File('/path/to/photo'));
//To delete it
Storage::delete($path);

您可以使用以下方式存储图像:

if(request('image'))
{
     $table_column_name = request('image')->hashName();
     request('image')->store('public/uploads/');
}
$data = MODAL_NAME::findOrFail($id);
Storage::delete('public/uploads/'.$data->image);
您可以使用以下方法删除图像:

if(request('image'))
{
     $table_column_name = request('image')->hashName();
     request('image')->store('public/uploads/');
}
$data = MODAL_NAME::findOrFail($id);
Storage::delete('public/uploads/'.$data->image);

您可以使用以下方式存储图像:

if(request('image'))
{
     $table_column_name = request('image')->hashName();
     request('image')->store('public/uploads/');
}
$data = MODAL_NAME::findOrFail($id);
Storage::delete('public/uploads/'.$data->image);
您可以使用以下方法删除图像:

if(request('image'))
{
     $table_column_name = request('image')->hashName();
     request('image')->store('public/uploads/');
}
$data = MODAL_NAME::findOrFail($id);
Storage::delete('public/uploads/'.$data->image);

这回答了你的问题吗?这回答了你的问题吗?