干预图像:直接从具有原始文件名和ext的URL保存图像?

2022-08-30 20:50:03

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

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

我使用 Interventionhttp://image.intervention.io/api/make)来构建 CakePHP 3 映像行为,我想提供从远程服务器轻松上传的图像,并保留原始映像作为将来操作的来源。

编辑

我问,当从远程服务器获取时,是否有返回文件名的干预图像方法。我知道php copy(),basename(),我也可以使用CakePHP File实用程序,但它给了我对远程文件的重复请求。


答案 1

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

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

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

答案 2

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

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

这将显示我的个人资料图片。如果您没有将其与Laravel框架一起使用,只需将 return 替换为 .echo

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

希望有所帮助,如果有用,请投票支持我的回复;)

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


推荐