0

我正在使用 Laravel 插件Laravel Excel将视图直接加载到 Excel 工作表中。一切顺利。但是在我看来使用图像时,错误提示说找不到图像的完整网址。错误是:

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>

任何使用 laravel-excel 插件在 excel 中嵌入图像的人都经历过同样的事情吗?

4

5 回答 5

3

我已经对其进行了测试,看来您只能在要将文件附加到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 文件。

于 2014-09-25T08:13:42.597 回答
1

使用 pulic_path() 它返回资源目录的完全限定路径。

<td>
    @if(!is_null($s->photo))
        <img src="{{ public_path().$s->photo }}" style="width:90px;height:85px;" alt=""/>
    @endif
</td>
于 2017-05-16T06:45:21.383 回答
0

您可以使用<img src="public/uploads/patients/23/first-patient-photo.jpg" />

于 2015-04-18T23:04:37.990 回答
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

改用资产助手方法:

<img src="{{ asset('uploads/patients/23/first-patient-photo.jpg')}}" style="width:90px;height:85px;" alt=""/>

使用后面的路径public,根据这个规则在你的代码中调整它。

于 2014-09-22T09:49:37.593 回答
0

我也遇到了这个问题并用public_path(). 就我而言

<img src="{{ public_path().'/image/sample.png' }}">
于 2021-09-02T05:07:56.243 回答