我在Laravel 5中有一个相当简单的网站,几乎没有静态页面。
网站使用的功能之一是用于图像处理的Glide服务器,因此在我的composer.json
我有这一行
"league/glide": "0.3.*",
显然作为一种依赖,这个包也已安装
"intervention/image": "~2.1",
现在好像我已经设置了一切,但是当我尝试通过网址点击某些图片时,我得到了
NotReadableException in Decoder.php line 21:
Unable to read image from file (/tmp/GlidesCmrgC).
Glide
文件名中tmp
之后的所有内容都是随机的。
所以显然文件已加载而不会丢失,但仍然出现问题。我正在研究文档,但找不到任何东西。
这是一个路由处理Glide请求的ImageController文件
<?php
namespace app\Http\Controllers;
use Illuminate\Http\Request;
use League\Glide\Server as GlideServer;
class ImageController extends Controller
{
public function output(Request $request, GlideServer $glide)
{
// Also tried this
// $glide->outputImage($request);
$glide->getImageResponse($request);
}
}
在我AppServiceProvider.php
我有这个部分
$this->app->singleton('League\Glide\Server', function ($app) {
$filesystem = $app->make('Illuminate\Contracts\Filesystem\Filesystem');
return \League\Glide\ServerFactory::create([
'source' => $filesystem->getDriver(),
'cache' => $filesystem->getDriver()
]);
// Also tried this
// $filesystem = $app->make('League\Flysystem\FilesystemInterface');
/* return \League\Glide\ServerFactory::create([
'source' => $filesystem,
'cache' => storage_path().'/app/.cache',
'base_url' => 'img',
]); */
});
在routes.php
我有这条路线
get('/img/{path}', 'ImageController@output');