0

我已经创建了一个符号链接来从存储访问公用文件夹storage/app/public

php artisan storage:link

这一次我对如何过滤可以查看图像的用户有疑问?比如,我怎样才能实现Only Me , My Friends Only

先生们有什么想法吗?

4

2 回答 2

1

注意:此解决方案存在一些性能问题。这只是为了回答问题,向下滚动以查看其他方法。

<input type="file" name="file"> 


我个人将文件保存在文件夹内/storage/app/files而不是/public文件夹内(因为它告诉所有人公开)。

request()->file->storeAs('files', 'filename.ext'); 


查看和添加限制:创建一个负责查看的路由:

Route::get('files/{$filename}', 'FileController@show')->name('files.show);

控制器:

public function show($filename)
{
    $path = storage_path('app/files/'.$filename);

    //do some If-Else or Filters here, for user who can access the file

    return response()->download($path, null, [], null);
}


删除文件:

File::delete('app/files/'.$filename);
于 2019-12-18T11:45:57.683 回答
0

我认为您应该在表“storage_file”中设置一个字段“image_option”。

image_option: string,
image_option = {privacy_level:[1, 2, 3]}
privacy_level = 1 // public
privacy_level = 2 // only me
privacy_level = 3 // only friend only
于 2019-12-17T08:07:08.073 回答