2014-09-22 44 views
0

我使用Laravel插件Laravel Excel將視圖直接加載到Excel表單中。一切都很好。但在我看來,使用圖像時,錯誤提示說未找到圖像的完整網址。錯誤是:在laravel視圖中找不到圖像文件錯誤excel插件

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

您已經使用以下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 helper方法代替:

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

使用public之後的路徑,根據此規則在代碼中進行調整。

+0

http://example.com在我的情況是http:// localhost。由於stackoverflow不允許本地主機,我反而選擇了example.com。所以apache的文件夾client_site實際上是public之前的URL的一部分。即使使用asset()方法,也會生成相同的圖像url。和同樣的錯誤。 – sangam 2014-09-24 09:43:11

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文件與圖像。

0

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

0

使用pulic_path()返回給資源目錄的完全限定路徑。

<td> 
    @if(!is_null($s->photo)) 
     <img src="{{ public_path().$s->photo }}" style="width:90px;height:85px;" alt=""/> 
    @endif 
</td>