Laravel 5 存储来自 URL 的图像

Laravel 5 Store Image from URL

我正在尝试使用对存储的干预来存储来自 URL 的图像。

这是我到目前为止尝试过的方法(尝试 1):

$path = 'http://f2b9x.s87.it/images/1/FR_laura-kithorizontal.gif';
$filename = basename($path);
$image = Image::make($path);
$store = $image->storeAs('image/'.$filename,'public');

但是我得到这个错误: Command (storeAs) is not available for driver (Gd).

然后我尝试了这个(尝试 2):

Image::make('http://f2b9x.s87.it/images/1/FR_laura-kithorizontal.gif')->save(public_path('/images/saveAsImageName.jpg'));

但是我得到这个错误:Can't write image data to path (C:\xampp\htdocs\app\public\/images/saveAsImageName.jpg)

在尝试 2 中,我也尝试这样做:public_path('\images\saveAsImageName.jpg') 只是为了确保不是反斜杠导致了问题,但它给了我同样的错误。

有什么帮助吗?

试试这个

Image::make('http://f2b9x.s87.it/images/1/FR_laura-kithorizontal.gif')->save(public_path('images/saveAsImageName.jpg'));

请注意,我在 public_path() 函数中遗漏了您的第一个斜线(“/”)。

问题是我没有创建目录(感谢@Tim Lewis)

我是这样解决的:

use File;

File::makeDirectory(public_path('images/kits/'.$microtime), 0775, true);

第一个参数是路径
第二个参数是赋予该文件夹的权限
第三个参数通常默认为 false,但如果为 true,它会递归地创建目录。这意味着它首先检查图像是否已创建,然后是工具包,然后(在本例中)是否创建了具有该微时间的文件夹。
如果 none 存在,则创建所有这些。