我正在尝试从提供的链接下载GooglePlay应用的图标。
例如。 https://lh5.ggpht.com/j0y0xf18PF8iZ_qyKekah11Gg7fteqhqm_VC0SQg7oMsIyMPato7Z_zBsGmOtTf2Fw=w300
现在当我使用cURL下载图像时,使用以下代码
function scaleImageAndSaveIt($appName,$imageURL){
$format="_%d_%m_%Y_%H_%M_%S";
$strf=strftime($format);
$imageLocnName = $appName . $strf ;
$ch = curl_init($imageURL);
$fp = fopen($imageLocnName, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, true);
$resp = curl_exec($ch);
echo $resp;
curl_close($ch);
fclose($fp);
return $imageLocnName; }
现在,当我尝试保存图片时,我没有任何文件扩展名。 (.png,或.jpg或其他任何东西)。但是,当我手动保存图像时,我将图像扩展名设为PNG。
如何使用默认图像名称和扩展名下载图像,或者如何找到扩展名。任何解决方案对我都有帮助。
答案 0 :(得分:0)
尝试这样的事情,并根据返回值决定使用哪个扩展名:
function GetMimeType($path)
{
//$type = mime_content_type($file); //deprecated
/* //file info -> normal method, but returns wrong values for ics files..
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
$type = $filename.":".finfo_file($finfo, $filename);
finfo_close($finfo);
*/
$forbiddenChars = array('?', '*', ':', '|', ';', '<', '>');
if(strlen(str_replace($forbiddenChars, '', $path)) < strlen($path))
throw new \Exception("Forbidden characters!");
$path = escapeshellarg($path);
ob_start();
$type = system("file --mime-type -b ".$path);
ob_clean();
return $type;
}
function GuessExtension($path)
{
$type = GetMimType($path);
$extension = "";
switch($type)
{
case "image/png":
$extension = ".png";
break;
case "image/jpeg":
default:
$extension = ".jpg";
break;
}
}
//use it like this:
var_dump(GuessExtension("/path/to/your/saved/file"));