Я использую плагин Laravel Laravel Excel загрузить вид непосредственно в лист Excel. Все идет хорошо Но при использовании изображения на мой взгляд, ошибка выдает сообщение о том, что полный URL изображения не найден. Ошибка:
PHPExcel_Exception
файл http://example.com/client1_site/public/uploads/patients/23/first-patient-photo.jpg
не найдено!
Но URL-адрес существует, и он отображает правильное изображение.
У меня есть следующие HTML на мой взгляд:
<td>
@if(!is_null($s->photo))
<img src="{{URL::to($s->photo)}}" style="width:90px;height:85px;" alt=""/>
@endif
</td>
Кто-нибудь, имеющий встроенный образ в Excel с использованием плагина laravel-excel, испытал то же самое?
Я проверил это, и кажется, что вы можете использовать только относительные пути, когда вы хотите прикрепить файл к Laravel Excel
,
Так что вы не можете использовать, например:
но вы должны использовать:
<img src="img/ph4.png" style="width:90px;height:85px;" alt=""/>
Я подготовил тестовый код, чтобы он работал как для Laravel Excel, так и для обычного маршрута при необходимости:
routes.php
файл
Route::get('/', function() {
Excel::create('New file', function($excel) {
$excel->sheet('New sheet', function($sheet) {
$sheet->loadView('hello')->with('no_asset', true);
});
})->download('xls');
});Route::get('/test', function() {
return View::make('hello');
});
hello.blade.php
файл:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<table>
<tr>
<td>
info here
</td><td>
@if (isset($no_asset))
<img src="img/ph4.png" style="width:90px;height:85px;" alt=""/>
@else
<img src="{{ asset('img/ph4.png') }}" style="width:90px;height:85px;" alt=""/>
@endif
</td>
</tr>
</table>
</body>
</html>
Передача дополнительной переменной no_asset
для просмотра вы можете решить, если вы отображаете только относительный путь или весь путь, используя asset
,
Это работает для меня — оба используют /test
маршрут я получаю ожидаемый результат и для /
Я получаю файл Excel с изображением.
Вы использовали следующие URL
:
File http://example.com/client1_site/public/uploads/patients/23/first-patient-photo.jpg
Но если это в вашем public
папка то URL
должно быть:
File http://example.com/uploads/patients/23/first-patient-photo.jpg
использование актив вместо этого вспомогательный метод:
<img src="{{ asset('uploads/patients/23/first-patient-photo.jpg')}}" style="width:90px;height:85px;" alt=""/>
Используйте путь после public
настройте его в своем коде в соответствии с этим правилом.
Ты можешь использовать <img src="public/uploads/patients/23/first-patient-photo.jpg" />
Используйте pulic_path (), он возвращает полный путь к каталогу ресурсов.
<td>
@if(!is_null($s->photo))
<img src="{{ public_path().$s->photo }}" style="width:90px;height:85px;" alt=""/>
@endif
</td>