作家
登录

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

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

Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践


nodejs和php实现图片拜访及时处理

我在拜访时光网、网易云音乐等网站时,发明将它们页面中的一些图片URL修改一下就可以获得不合尺寸的图片,于是思虑了其实现筹划,我的思路是:URL Rewrite + 及时处理 + 缓存,对用户请求的URL进行重写,然后应用图片处理类库对图片进行处理,接着缓存该尺寸图片并输出到浏览器。应用PHP和Node.js实现了一遍,根本达到了须要的效不雅。

1、Nginx+Node.js(express)实现 

  1. app.get('/resize',function(req,res){ 
  2.   var src = req.query.src, 
  3.     width = req.query.w, 
  4.     height = req.query.h, 
  5.     type = req.query.type; 
  6.   var imgFile = uploadDir+src+'.'+type; 
  7.   var notFound = '不好意思,该图片不存在或已被删除!'
  8.   var thumb = getThumbImg(src,width,height,type); 
  9.   if(isFileExists(imgFile)){ 
  10.     if(isFileExists(thumb)){ 
  11.       res.type(type).sendFile(__dirname+'/'+thumb); 
  12.     }else
  13.       imgResize(imgFile,thumb,width,height,type,res); 
  14.     } 
  15.   }else
  16.     res.status(404).send(notFound); 
  17.   } 
  18. }); 
  19. function imgResize(f,th,w,h,t,r){ 
  20.   var imgSize = sizeOf(f); 
  21.   if(!w||!h||w>=imgSize.width||h>=imgSize.height){ 
  22.     r.type(t).sendFile(__dirname+'/'+f); 
  23.   }else
  24.     imageMagick(f) 
  25.       .resize(w,h,'!')  
  26.       .stream(function(err, stdout, stderr) { 
  27.         if (err) { 
  28.           console.log(err); 
  29.           res.end(); 
  30.         } 
  31.         var ws = fs.createWriteStream(th); 
  32.         stdout.pipe(ws); 
  33.         r.type(t); 
  34.         stdout.pipe(r); 
  35.       }); 
  36.   } 
  37. function isFileExists(filePath){ 
  38.   var bool = !0; 
  39.   try{ 
  40.     fs.accessSync(filePath,fs.constants.F_OK); 
  41.   }catch(err){ 
  42.     bool = !1; 
     1/4    1 2 3 4 下一页 尾页

      推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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