使用cURL php从URL下载带有扩展名的图像

Prashant Shrivastava

我正在尝试从提供的链接中下载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。

如何下载具有默认图像名称和扩展名的图像,或者如何找到扩展名。任何解决方案都对我有帮助。

拉斐尔·穆勒(RaphaelMüller)

尝试这样的事情,并根据返回值确定要使用的扩展名:

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"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用curl从没有文件扩展名的URL下载图像

来自分类Dev

使用带有原始文件名和扩展名的Google Drive API下载

来自分类Dev

使用PHP PCRE regex从日志字符串上的URL获取带有扩展名的文件名

来自分类Dev

当其 URL 不包含文件扩展名时,如何使用 Nodejs 下载图像?

来自分类Dev

使用 PHP cURL 下载带有特殊字符的 URL

来自分类Dev

如何使用.htaccess将带有.m3u8扩展名的URL重定向到php脚本?

来自分类Dev

Guzzle使用Laravel抱怨没有安装PHP cURL扩展名

来自分类Dev

Guzzle使用Laravel抱怨没有安装PHP cURL扩展名

来自分类Dev

如果URL后面带有Querystring,则使用javascript更改文件扩展名

来自分类Dev

httprouter,使用带有扩展名的路由路径

来自分类Dev

PHP使用第一个字符获取带有扩展名的文件名

来自分类Dev

无法使用PHP CURL下载远程图像

来自分类Dev

如何在带有自定义 URL 和扩展名的 cakephp 中使用国际化

来自分类Dev

如何在 Laravel 中使用带有@lang 扩展名的 *.blade.php 文件中的 strtolower?

来自分类Dev

使用glob动态显示具有不同扩展名的图像在PHP中不起作用

来自分类Dev

使用 Curl 下载多个图像

来自分类Dev

无法使用带有SSL的php CURL获取图像

来自分类Dev

我们如何下载图像,当其 URL 不包含文件扩展名并上传带有文件扩展名的图像

来自分类Dev

无法使用Curl下载URL

来自分类Dev

下载带有扩展名的文件

来自分类Dev

使用 PHP 从文件中删除扩展名,然后下载它

来自分类Dev

使用cURL保存图像

来自分类Dev

如何使用角度ui-mask屏蔽带有可选扩展名的电话号码?

来自分类Dev

如何使TypeScript与SystemJS一起使用?(带有.js扩展名的问题)

来自分类Dev

如何使用Her Gem格式化带有扩展名的collection_path

来自分类Dev

使用XPath在WIX中删除带有XmlConfig扩展名的XML元素

来自分类Dev

使用带有春季安全性kerberos扩展名的keytab文件

来自分类Dev

如何使用Selenium和Python绕过带有扩展名的ReCaptcha

来自分类Dev

如何使用带有未知文件扩展名的find命令?

Related 相关文章

  1. 1

    使用curl从没有文件扩展名的URL下载图像

  2. 2

    使用带有原始文件名和扩展名的Google Drive API下载

  3. 3

    使用PHP PCRE regex从日志字符串上的URL获取带有扩展名的文件名

  4. 4

    当其 URL 不包含文件扩展名时,如何使用 Nodejs 下载图像?

  5. 5

    使用 PHP cURL 下载带有特殊字符的 URL

  6. 6

    如何使用.htaccess将带有.m3u8扩展名的URL重定向到php脚本?

  7. 7

    Guzzle使用Laravel抱怨没有安装PHP cURL扩展名

  8. 8

    Guzzle使用Laravel抱怨没有安装PHP cURL扩展名

  9. 9

    如果URL后面带有Querystring,则使用javascript更改文件扩展名

  10. 10

    httprouter,使用带有扩展名的路由路径

  11. 11

    PHP使用第一个字符获取带有扩展名的文件名

  12. 12

    无法使用PHP CURL下载远程图像

  13. 13

    如何在带有自定义 URL 和扩展名的 cakephp 中使用国际化

  14. 14

    如何在 Laravel 中使用带有@lang 扩展名的 *.blade.php 文件中的 strtolower?

  15. 15

    使用glob动态显示具有不同扩展名的图像在PHP中不起作用

  16. 16

    使用 Curl 下载多个图像

  17. 17

    无法使用带有SSL的php CURL获取图像

  18. 18

    我们如何下载图像,当其 URL 不包含文件扩展名并上传带有文件扩展名的图像

  19. 19

    无法使用Curl下载URL

  20. 20

    下载带有扩展名的文件

  21. 21

    使用 PHP 从文件中删除扩展名,然后下载它

  22. 22

    使用cURL保存图像

  23. 23

    如何使用角度ui-mask屏蔽带有可选扩展名的电话号码?

  24. 24

    如何使TypeScript与SystemJS一起使用?(带有.js扩展名的问题)

  25. 25

    如何使用Her Gem格式化带有扩展名的collection_path

  26. 26

    使用XPath在WIX中删除带有XmlConfig扩展名的XML元素

  27. 27

    使用带有春季安全性kerberos扩展名的keytab文件

  28. 28

    如何使用Selenium和Python绕过带有扩展名的ReCaptcha

  29. 29

    如何使用带有未知文件扩展名的find命令?

热门标签

归档