从远程服务器获取图像时如何获取文件名?以及如何保存原始大小和文件名?
// Take remote image
$img = Image::make('http://image.info/demo.jpg');
// how to save in the img/original/demo.jpg
$img->save(????);
我使用干预,(http://image.intervention.io/api/make)来构建CakePHP 3图像行为,我希望从远程服务器轻松上传,并保留原始图像作为未来操作的来源
编辑
我问,是否有干预图像方法,该方法从远程服务器获取文件的名称。我知道php copy(),我也可以使用CakePHP文件实用程序,但它给了我远程文件的重复请求。
答案 0 :(得分:22)
response()不会像Salines请求的那样返回原始文件名。这应该工作
$path = 'https://i.stack.imgur.com/koFpQ.png';
$filename = basename($path);
Image::make($path)->save(public_path('images/' . $filename));
答案 1 :(得分:3)
您可以使用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();
希望在有用的情况下帮助并提升我的回复;)
如果您需要进一步的帮助,请询问。
答案 2 :(得分:0)
首先在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));