我使用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