我有一个像这样的图片网址:
http://phpimagick.com/customImage/Imagick/distortImage?imagePath=Lorikeet&distortion=1
我想将此图像下载到Laravel中的公共文件夹,然后从我的公共文件中获取图像并在我的项目中使用。
此网址使用相同的代码:
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;
}
答案 0 :(得分:0)
不要假设来自文件名的扩展名,而是来自mimetype
$imageDownloaded = file_get_contents($image_to_upload);
$imageType = exif_imagetype($imageDownloaded);
$mimeType = explode('/', image_type_to_mime_type($imageType));
$extension = $mimeType[1];
当然你可以改进那里的逻辑,也可以检查是否存在或为了简洁而跳过了错误的返回