Question: How to download image from url and save in server?
//Image path which we will download $imageURL='http://domain.com/image.jpg'; //get extension of image $ext = pathinfo($imageURL, PATHINFO_EXTENSION); //Local path of image - where will we save the image $downloadTo = fopen('import/image/file'. rand(1, 9999).'.'.$ext, 'wb'); //Download and save image $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $imageURL); curl_setopt($ch, CURLOPT_FILE, $downloadTo); curl_setopt($ch, CURLOPT_HEADER, 0); $output = curl_exec($ch); curl_close($ch);
For http URL, http image will download.
For https URL, https image will download.
Question: How to get image extension from url?
$imageURL='http://domain.com/image.jpg'; $ext = pathinfo($imageURL, PATHINFO_EXTENSION); //.jpg
Question: Download image from URL and display in browser?
//Image path which we will download $imageURL='http://domain.com/image.jpg'; //get extension of image $ext = pathinfo($imageURL, PATHINFO_EXTENSION); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $imageURL); curl_setopt($ch, CURLOPT_HEADER, 0); $output = curl_exec($ch); curl_close($ch); switch( $ext ) { case "gif": $ctype="image/gif"; break; case "png": $ctype="image/png"; break; case "jpeg": case "jpg": $ctype="image/jpeg"; break; default: } header('Content-type: ' . $ctype);
For http URL, http image will download.
For https URL, https image will download.
$imageURL='http://domain.com/image.jpg'; list($width, $height, $type, $attr) = getimagesize($imageURL); if (!empty($width) && !empty($height)) { echo "Valid Image"; }else{ echo "In Valid Image"; }
Question: Download image from external URL, instead of displaying in browser?
$imageURL='https://s3.ap-south-1.amazonaws.com/cloud-front-s3/8_12.jpg'; $imageURLArray = explode('/',$imageURL); $downloadFileName=$imageURLArray[count($imageURLArray)-1]; //get extension of image $ext = pathinfo($imageURL, PATHINFO_EXTENSION); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $imageURL); curl_setopt($ch, CURLOPT_HEADER, 0); $output = curl_exec($ch); curl_close($ch); header("Content-Type: application/octet-stream"); // // set it as an attachment and give a file name header('Content-Disposition: attachment; filename='.$downloadFileName); echo $output;