我正在使用Laravel插件Laravel Excel将视图直接加载到Excel工作表中。一切都很顺利。但是在我的视图中使用图像时,错误提示说未找到图像的完整URL。错误是:
PHPExcel_Exception
档案http://example.com/client1_site/public/uploads/patients/23/first-patient-photo.jpg 没找到!
但是网址存在且显示正确的图像。
我在视图中有以下html:
<td>
@if(!is_null($s->photo))
<img src="{{URL::to($s->photo)}}" style="width:90px;height:85px;" alt=""/>
@endif
</td>
任何使用laravel-excel插件在excel中嵌入图像的人都经历过相同的操作?
答案 0 :(得分:2)
我已对其进行了测试,当您要将文件附加到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文件。
答案 1 :(得分:0)
您使用了以下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
改为使用asset辅助方法:
<img src="{{ asset('uploads/patients/23/first-patient-photo.jpg')}}" style="width:90px;height:85px;" alt=""/>
使用public
之后的路径,根据此规则在代码中进行调整。
答案 2 :(得分:0)
您可以使用<img src="public/uploads/patients/23/first-patient-photo.jpg" />
答案 3 :(得分:0)
使用pulic_path()它返回资源目录的完全限定路径。
<td>
@if(!is_null($s->photo))
<img src="{{ public_path().$s->photo }}" style="width:90px;height:85px;" alt=""/>
@endif
</td>