Laravel 干预图像:直接从 dropbox 保存图像 url

Laravel Intervention Image: Save image directly from dropbox url

我试图通过 laravel 干预将图像从 Dropbox url 存储到我的本地文件夹,但是我在错误之后不断出错。

谁能告诉我该怎么做?

我的代码是这样的

 $path = 'https://www.dropbox.com/s/vwswp91fiz0m1wd/1200px-Good_Food_Display_-_NCI_Visuals_Online.jpg?dl=0';
        $filename = explode('?',basename($path))[0];
        Image::make($path)->save('images/'.$filename); 

我得到的错误是

Unable to init from given binary data.

所以我尝试了来自 Whosebug post

的解决方案
$path = 'https://www.dropbox.com/s/vwswp91fiz0m1wd/1200px-Good_Food_Display_-_NCI_Visuals_Online.jpg?dl=0';

        $filename = explode('?',basename($path))[0];
        $path = base64_decode($path);
        Image::make($path)->save('images/'.$filename);

但这给了我另一个错误。 我试着看护目镜,但没有找到适合我的情况的可靠答案 谁能帮我解决如何从保管箱 url 下载图像并保存到本地存储的问题?还是我必须添加 dropbox api 之类的东西??

https://www.dropbox.com/s/vwswp91fiz0m1wd/1200px-Good_Food_Display_-_NCI_Visuals_Online.jpg?dl=0 使用的保管箱 link 是图片预览页面,不是有效的图片内容。您可以使用强制下载模式从 Dropbox 中获取图像内容,方法是将查询参数从 ?dl=0 编辑为 ?raw=1

$path = 'https://www.dropbox.com/s/vwswp91fiz0m1wd/1200px-Good_Food_Display_-_NCI_Visuals_Online.jpg?raw=1';
Image::make($path)->save('images/'.$filename); 

另请参阅:Force a file or folder to download, or to render on dropbox.com