干预图像:直接从 url 中使用原始文件名和扩展名保存图像?

Intervention Image: Save image directly from an url with original file name and ext?

从远程服务器获取图像时,如何获取文件名?以及如何以原始大小和文件名保存?

// Take remote image
$img = Image::make('http://image.info/demo.jpg');
// how to save in the img/original/demo.jpg
$img->save(????);

我使用 Intervention, (http://image.intervention.io/api/make) 构建 CakePHP 3 图像行为,我想提供从远程服务器轻松上传,并保持原始图像未来操纵的来源。

编辑

请问,有没有干预图片的方法,returns文件名,当取自远程服务器。我知道 php copy()、basename(),我也可以使用 CakePHP File 实用程序,但它给了我对远程文件的重复请求。

您可以使用 make();response(); 方法轻松完成。检查下面的代码。

请记住,必须启用 allow_url_fopen 才能获取远程图像。

这将显示我的个人资料照片。如果您不将其与 Laravel Framework 一起使用,只需将 return 替换为 echo.

$img = Image::make('https://i.stack.imgur.com/koFpQ.png');
header('Content-Type: image/png');
return $img->response();

希望对我的回复有帮助,如果有用请点赞 ;)

如果您需要进一步的帮助,请直接询问。

response() 不像 Salines 所请求的那样 return 原始文件名。这应该有效

$path = 'https://i.stack.imgur.com/koFpQ.png';
$filename = basename($path);

Image::make($path)->save(public_path('images/' . $filename));

首先在名为 public 的文件夹中创建新文件夹 images ,然后执行以下代码从 url 下载图像并将其保存在 public\images 文件夹中

        $url = 'http://example.com/image.png';
        $img = public_path('images') . '\test.png';
        file_put_contents($img, file_get_contents($url));