Laravel API从包含数据库数据的公用文件夹返回图像

时间:2016-08-19 11:04:52

标签: api laravel

我想用数据返回图片。

$ads = DB::table('ads')->whereRaw('category_id=' .$id)->orderBy('id', 'desc')->get();

$filename = public_path().'/uploads/images/'.$ads->ad_image;
$filename = (file_get_contents($filename));
$image = Array('image'=>json_encode(base64_encode($filename)));
$ads[0]->image = $image;

return $ads; 

2 个答案:

答案 0 :(得分:3)

假设您要在存储在laravel存储目录中的页面上向用户显示图像,您可以执行以下操作:

创建一个控制器来获取并返回图像作为响应。

<?php
namespace App\Http\Controllers;

use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\View;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Response;
Use DB;


class PhotoController extends Controller
{
    public function image($fileName){
        $path = public_path().'/uploads/images/'.$fileName;
        return Response::download($path);        
    }
}

添加路线以处理图像请求

Route::get('image/{filename}',PhotoController @image);

现在,要访问图像,请在图片标记中说明

<img src="image/abc.jpg">

PS:这种提供图像的方法对于图像的直接链接几乎没有开销...
如果您的图像是公共的,您只需创建将图像存储到公共目录的目录的符号链接。

答案 1 :(得分:0)

$ filename = asset('/ uploads / images /'.$ ads-> ad_image);