我使用Laravel 5
Embed包来获取外部链接的元数据。然后我使用Intervention Image包来操作链接的默认图像并将其保存在磁盘上。干预图像:不支持编码格式(png?v = 73d79a89bded&a)
一切正常,直到我尝试提交链接到StackOverflow
的问题。然后,我得到这个错误:
NotSupportedException异常在AbstractEncoder.php线149:(?PNG V = 73d79a89bded &一)
编码格式不支持。
在AbstractEncoder.php线在AbstractEncoder->处理(对象(图像), 'PNG?V = 73d79a89bded &一个',NULL)>在AbstractDriver.php线77
在AbstractDriver - >编码(对象(图像), '?PNG v = 73d79a89bded &一个',NULL)在> Image.php线119
在图像 - >编码( '?PNG v = 73d79a89bded &一个',NULL) in Image.php line 139
在图像 - >保存( 'C:\ XAMPP \ htdocs中\ R2 \公共/图片/ rwSuGpEB.png V = 73d79a89bded &一')在PostsController.php线70
如何处理这个在Laravel
和干预包?
如何从basename()
中删除?v=73d79a89bded&a
?
这是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');
}
我不是故意粗鲁,但我已经知道了。问题是,我该如何删除它?我可以使用'basename()'来获得文件名+扩展名。 – Halnex
对不起,您的问题的原始版本并不清楚。在这种情况下,你可以大大缩短它。看到我更新的答案。 –
是的,我为此道歉。那之后我更新了我的问题。谢谢你,解决了它。 – Halnex