How to get the filename, when taking image from a remote server? And how to save with original size and filename?
// Take remote image
$img = Image::make('http://image.info/demo.jpg');
// how to save in the img/original/demo.jpg
$img->save(????);
I use Intervention, (http://image.intervention.io/api/make) to build CakePHP 3 image Behavior, I want to provide an easy uploading from remote servers, and keep the original image as a source for future manipulation.
EDIT
I ask, is there the Intervention Image method that returns the name of the file, when taken from the remote server. I know php copy(), I can also use the CakePHP File utilities, but it gives me the duplicate request on remote file.
response() does not return the original filename like Salines was requesting. This should work
$path = 'https://i.stack.imgur.com/koFpQ.png';
$filename = basename($path);
Image::make($path)->save(public_path('images/' . $filename));
You can easily do it using the make();
and response();
methods. Check my code below.
Just keep in mind that allow_url_fopen
must be enabled to fetch a remote image.
This will display my profile picture. If you are not using it with Laravel Framework, just replace return with echo
.
$img = Image::make('https://i.stack.imgur.com/koFpQ.png');
header('Content-Type: image/png');
return $img->response();
Hope that helps and upvote my reply if useful ;)
If you need further help just ask.
来源:https://stackoverflow.com/questions/32828606/intervention-image-save-image-directly-from-an-url-with-original-file-name-and