我尝试使用Intervention将图像存储到我的存储空间。
这是我到目前为止所尝试的(尝试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')
只是为了确保反斜杠不会导致问题,但它给了我同样的错误。
任何帮助?
答案 0 :(得分:0)
试试这个
Image::make('http://f2b9x.s87.it/images/1/FR_laura-kithorizontal.gif')->save(public_path('images/saveAsImageName.jpg'));
请注意,我在public_path()函数中省略了第一个斜杠(" /")。
答案 1 :(得分:0)
问题在于我没有创建目录(感谢@Tim Lewis)
我解决了这个问题: use File;
File::makeDirectory(public_path('images/kits/'.$microtime), 0775, true);
第一个参数是路径
第二个参数是给予该文件夹的权限
第三个参数通常默认为false,但如果为true,则以递归方式创建目录。这意味着它首先检查是否创建了图像,然后是套件,然后(在这种情况下)是否创建了具有该microtime的文件夹。
如果不存在,则会创建所有这些。