Saya ingin menggunakan Glide untuk semua sumber gambar saya.
Mengikuti instruksi ini, saya bisa mendapatkan gambar di http://myweb.dev/img/test.jpg?w=200&filt=sepia
.
Rute:
Route::get('/img/{path}', 'ImageController@show')->where('path', '.*');
Pengendali:
namespace App\Http\Controllers;
use Illuminate\Contracts\Filesystem\Filesystem;
use League\Glide\Responses\LaravelResponseFactory;
use League\Glide\ServerFactory;
class ImageController extends Controller
{
public function show(Filesystem $filesystem, $path)
{
$server = ServerFactory::create([
'response' => new LaravelResponseFactory(app('request')),
'source' => $filesystem->getDriver(),
'cache' => $filesystem->getDriver(),
'cache_path_prefix' => '.cache',
'base_url' => 'img',
]);
return $server->getImageResponse($path, request()->all());
}
}
Karena semua gambar saya berada di direktori /public/uploads, saya mengubahnya sebagai berikut.
Rute:
Route::get('uploads/{path}', 'ImageController@show')->where('path', '.*');
Pengendali
public function show(Filesystem $filesystem, $path)
{
$server = ServerFactory::create([
'response' => new LaravelResponseFactory(app('request')),
'source' => public_path(),
'cache' => public_path(),
'cache_path_prefix' => '.cache',
'base_url' => 'uploads',
]);
return $server->getImageResponse($path, request()->all());
}
Saat saya membuka http://myweb.dev/uploads/test.jpg?w=200&filt=sepia, saya mendapatkan gambar tanpa perubahan apa pun atau direktori .cache apa pun dibuat.
Saya mencoba base_path()
dan /uploads
juga, tetapi tidak berhasil juga. Saya menggunakan direktori unggahan untuk elfinder.
Apa yang saya lakukan salah di sini?