我正在使用Laravel 5
Embed包来获取外部链接的元数据。然后我使用Intervention Image包来操作链接的默认图像并将其保存在磁盘上。
一切正常,直到我尝试提交StackOverflow
问题的链接。然后我得到这个错误:
AbstractEncoder.php 第 149 行中的 NotSupportedException:
不支持编码格式 (png?v=73d79a89bded&a)。
在 AbstractEncoder.php 第 149 行
在 AbstractEncoder->process(object(Image), 'png?v=73d79a89bded&a', null) > 在 AbstractDriver.php 第 77 行
在 AbstractDriver->encode(object(Image), 'png?v=73d79a89bded&a', null) in > Image.php 第 119 行
在 Image.php 第 139 行中的 Image->encode('png?v=73d79a89bded&a', null)
在 PostsController.php 第 70 行的 Image->save('C:\xampp\htdocs\r2\public/images/rwSuGpEB.png?v=73d79a89bded&a')
我该如何处理这个Laravel
和干预包?
你如何?v=73d79a89bded&a
从basename()
?
这是create()
方法PostsController
public function store(PostRequest $request)
{
if (Input::has('link')) {
$input['link'] = Input::get('link');
$info = Embed::create($input['link']);
if ($info->image == null) {
$embed_data = ['text' => $info->description];
} else if ($info->description == null) {
$embed_data = ['text' => ''];
} else {
$extension = pathinfo($info->image, PATHINFO_EXTENSION);
$newName = public_path() . '/images/' . str_random(8) . ".{$extension}";
if (File::exists($newName)) {
$imageToken = substr(sha1(mt_rand()), 0, 5);
$newName = public_path() . '/images/' . str_random(8) . '-' . $imageToken . ".{$extension}";
}
// This is line 70
$image = Image::make($info->image)->fit(70, 70)->save($newName);
$embed_data = ['text' => $info->description, 'image' => basename($newName)];
}
Auth::user()->posts()->create(array_merge($request->all(), $embed_data));
return redirect('/subreddit');
}
Auth::user()->posts()->create($request->all());
return redirect('/subreddit');
}