你好我在laravel有麻烦。
我想为某些东西(xls,image,pdf等)创建私人存储空间。 一切都在存储/应用程序/公共目录中很好,但我不想要它,我想要我的目录,如存储/应用程序/产品/ {id} /
首先看看我的代码:
filesystem.php
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
'productions' => [
'driver' => 'local',
'root' => storage_path('app/productions'),
'visibility' => 'private',
],
我创造了新的阵列'制作'
ProductionController.php
public function file()
{
return '<img src="'.Storage::disk('productions')->url('7/2.png').'">';
}
web.php(路线)
Route::group([
'middleware'=>'roles',
'roles'=>['Administrator','Prefabrykacja','Dyrektor Prefabrykacji']
], function () {
Route::get('/Produkcja',[
'uses'=>'ProductionController@index',
'as'=>'production.index']);
Route::post('/Produkcja/create',[
'uses'=>'ProductionController@create',
'as'=>'production.create']);
Route::get('/Produkcja/file',[
'uses'=>'ProductionController@file',
'as'=>'production.file']);
});
如果我回来
return '<img src="'.Storage::disk('productions')->url('7/2.png').'">';
或
return '<img src="'.Storage::disk('local')->url('7/2.png').'">';
结果是一样的。两行返回存储/ app / public / 7 / 2.png中的图像将显示不是图像存储/ app / products / 7 / 2.png
如何显示我的产品文件夹中的图像并将资源限制为指定的角色?
此致
答案 0 :(得分:0)
首先,您可能错过了public
(Local URL Host Customization)这样的符号链接。此外,您需要为url
指定public
参数,并将visibility
更改为public
,以便其他人可以查看您的文件。
<强> filesystem.php:强>
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
'productions' => [
'driver' => 'local',
'root' => storage_path('app/productions'),
'url' => env('APP_URL') . '/productions', // added line (directory within "public")
'visibility' => 'public', // modified visibility
],
],
还要确保在public/productions
处创建一个指向storage/app/productions
目录的符号链接。您可以使用以下命令(例如)执行此操作:
cd LARAVEL_PATH && ln -s storage/app/productions public/productions