У вас может быть специальный маршрут, который считывает и возвращает изображение. Например, простой путь закрытия, подобный этому: существует два подхода в зависимости от конфиденциальности ваших файлов, вы можете использовать любой из нижеприведенных.
1) Использование выделенного контроллера для обслуживания изображений: strong>
Контроллер:
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\Storage;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Response;
class FileController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public static function getFile($fileName){
$path = storage_path() . '/' . $filename;
if(File::exists($path)){
return Response::download($path);
}
else
abort(404);
}
}
Маршрут
Route::get('/file/{file_name}','FileController@getFile');
Теперь вы можете получить доступ к файлу с именем, скажем, abc.jpg
по этому URL-адресу /file/abc.jpg
2) Используя символическую ссылку
Если ваши файлы не требуют аутентификации или какой-либо обработки, это метод является лучшим и быстрым по отношению к контроллеру
Создайте символическую ссылку между подпапкой в вашем каталоге хранилища и общедоступным каталогом.
В Linux вы можете использовать следующую команду:
ln -s /path_to_storage_directory/file /path_to_public_directory/files
В Windows используйте следующую команду:
mklink /j /path_to_storage_directory/file /path_to_public_directory/files
В Windows, если вы не хотите использовать CMD, это отдельное приложение для создания символических ссылок: Symlinker
person
jaysingkar
schedule
24.07.2016