nodejs服务器读取图片返回给浏览器显示

var http = require('http');

var fs = require('fs');

var url = require('url');

// 创建服务器

http.createServer( function (request, response) { 

   // 解析请求,包括文件名

   var pathname = url.parse(request.url).pathname;

   // 输出请求的文件名

   console.log("Request for " + pathname + " received.");

   // 从文件系统中读取请求的文件内容

   fs.readFile(pathname.substr(1), function (err, data) {

   var urlContent = pathname.substr(1);

   if(urlContent.lastIndexOf("png") > -1){

       if (err) {

         console.log(err);

         // HTTP 状态码: 404 : NOT FOUND

         // Content Type: text/plain

         response.writeHead(404, {'Content-Type''text/html'});

      }else{            

         // HTTP 状态码: 200 : OK

         // Content Type: text/plain

         response.writeHead(200, {'Content-Type''image/png'});

        var imageFilePath = pathname.substr(1);

        var stream = fs.createReadStream( imageFilePath );

        var responseData = [];//存储文件流

        if (stream) {//判断状态

            stream.on( 'data'function( chunk ) {

              responseData.push( chunk );

            });

            stream.on( 'end'function() {

               var finalData = Buffer.concat( responseData );

               response.write( finalData );

               response.end();

            });

        }             

      }

   }else if(urlContent.lastIndexOf("html") > -1){

     if (err) {

         console.log(err);

         // HTTP 状态码: 404 : NOT FOUND

         // Content Type: text/plain

         response.writeHead(404, {'Content-Type''text/html'});

      }else{            

         // HTTP 状态码: 200 : OK

         // Content Type: text/plain

         response.writeHead(200, {'Content-Type''text/html'});           

         // 响应文件内容

         response.write(data.toString());       

      }

      //  发送响应数据

      response.end();

   }else{

     console.log("unSupport Type, Please contact Administrator err url="+urlContent); 

   }    

   });  

}).listen(80);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值