作家
登录

nodejs和php实现图片访问实时处理

作者: 来源: 2017-11-21 15:09:12 阅读 我要评论

  • RewriteRule ^upload/(.+)_([0-9]+)x([0-9]+)\.(jpg|png|gif)$ resize.php?src=http://developer.51cto.com/art/201711/$1&w=$2&h=$3&type=$4 [L]  
  • 将类似http://127.0.0.1/upload/147332819224704_400x300.jpg地址重写为http://127.0.0.1/resize.php/src=http://developer.51cto.com/art/201711/147332819224704&w=400&h=300&type=jpg。 功能实现 接下来就是功能的实现,逻辑和nodejs版逻辑一致,代码如下:

    1. function getThumbImg($src,$w,$h,$type) 
    2.   global $thumbs; 
    3.   return $_SERVER['DOCUMENT_ROOT'].$thumbs.$src.'_'.$w.'_'.$h.'.'.$type; 
    4. function imgResize($f,$th,$w,$h,$t) 
    5.   $imagick = new Imagick(); 
    6.   $imagick->readImage($_SERVER['DOCUMENT_ROOT'].'\\'.$f); 
    7.   $width = $imagick->getImageWidth(); 
    8.   $height = $imagick->getImageHeight(); 
    9.   if(!$w||!$h||$w>=$width||$h>=$height){ 
    10.     header('Content-Type:image/'.$t); 
    11.     echo file_get_contents($_SERVER['DOCUMENT_ROOT'].'\\'.$f); 
    12.   }else
    13.     $imagick->stripImage(); 
    14.     $imagick->cropThumbnailImage($w, $h); 
    15.     $imagick->writeImage($th); 
    16.     header('Content-Type:image/'.$t); 
    17.     echo $imagick->getImageBlob(); 
    18.     $imagick->clear(); 
    19.     $imagick->destroy(); 
    20.   } 
    21. $uploadDir = "uploads/images/"
    22. $thumbs = "uploads/thumbs/"
    23. $src = $_GET['src']; 
    24. $width = $_GET['w']; 
    25. $height = $_GET['h']; 
    26. $type = $_GET['type']; 
    27. $imgFile = $uploadDir.$src.'.'.$type; 
    28. $notFound = '不好意思,该图片不存在或已被删除!'
    29. $thumb = getThumbImg($src,$width,$height,$type); 
    30. if(file_exists($imgFile)){ 
    31.   if(file_exists($thumb)){ 
    32.     header('Content-Type:image/'.$type); 
    33.     echo file_get_contents($thumb); 
    34.   }else
    35.     imgResize($imgFile,$thumb,$width,$height,$type); 
    36.   } 
    37. }else
    38.   header("HTTP/1.0 404 Not Found"); 
    39.   header(

        推荐阅读

        报告称运营问题导致运营商远离NFV

      Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践Cartesian针对40多个访谈和跨越100个受访者的在线查询拜访促成其宣布了《收集的将来:应对虚拟范畴的变革》的申报,受访>>>详细阅读


      本文标题:nodejs和php实现图片访问实时处理

      地址:http://www.17bianji.com/lsqh/39096.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)