我想用数据返回图片。
$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;
答案 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);