Php 如何从Laravel中的URL下载图像?

Php 如何从Laravel中的URL下载图像?,php,laravel,laravel-5.2,laravel-5.3,Php,Laravel,Laravel 5.2,Laravel 5.3,我有一个像这样的图像URL: http://phpimagick.com/customImage/Imagick/distortImage?imagePath=Lorikeet&distortion=1 我想将此图像下载到我在Laravel中的公用文件夹中,然后从我的公用文件中获取该图像并在我的项目中使用 相同的代码适用于此URL: http://i.stack.imgur.com/WCveg.jpg (此URL中的图像是JPG) 我的代码: if ($request->city_imag

我有一个像这样的图像URL:

http://phpimagick.com/customImage/Imagick/distortImage?imagePath=Lorikeet&distortion=1

我想将此图像下载到我在Laravel中的公用文件夹中,然后从我的公用文件中获取该图像并在我的项目中使用

相同的代码适用于此URL:

http://i.stack.imgur.com/WCveg.jpg

(此URL中的图像是JPG)

我的代码:

if ($request->city_image_hidden_link) {                           
   $image_to_upload = $request->city_image_hidden_link;
   $extra_name = rand(1, 50000) + time();

   $filename = basename($image_to_upload);

   file_put_contents('assets/UploadedImages/' .$extra_name .   $filename,file_get_contents($image_to_upload)); 
   $target_dir = "assets/UploadedImages/";
   $image_to_upload = "/" . $target_dir . $extra_name.$filename;
   $data['city_image'] = $image_to_upload;
}

不要假定扩展名来自文件名,而是来自mimetype

$imageDownloaded = file_get_contents($image_to_upload);
$imageType = exif_imagetype($imageDownloaded);
$mimeType = explode('/', image_type_to_mime_type($imageType));
$extension = $mimeType[1];
当然,您可以改进那里的逻辑,还可以检查是否存在或为简洁起见跳过的错误返回