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

  

本文主要是使用nodejs处理图片等资源返回给浏览器显示方法,但不只限制于图片,也可以是音频视频等其他非字符串文件的返回和显示。也可以扩展成nodejs静态资源服务器的开发方法。
  

  

<强>请求头说明

  

在http响应里面有几个重要的东西,内容类型说明文件渲染MIME类型,这是我们本文的相关处理关键。

  

常用的MIME类型

        {   :“css文本/css ",   :“gif图像/gif”,   “html”:“text/html”,   “图标”:“图像/x图标”,   :“jpeg图像/jpeg”,   :“jpg图像/jpeg”,   “js”:“text/javascript”,   “json”:“application/json”,   “pdf”:“应用程序/pdf”,   :“png图像/png”,   :“svg图像/svg + xml”,   “主权财富基金”:“应用程序/x-shockwave-flash”,   :“tiff图像/tiff”,   “三”:“text/plain”,   :“wav音频/x-wav”,   :“wma音频/x-ms-wma”,   :“wmv视频/x-ms-wmv”,   “xml”:“text/xml”   }      

<强>处理方法

  

  

原理:
  

  

使用node . js的fs。readFile来处理,根据请求地址,转换成实际的文件地址。判断文件是否存在,不存在返回404年,存在则读取文件,并返回文件

     //设置请求的返回头类型、内容的类型类型列表见上面   响应。setHeader(“内容类型”,contentType);//格式必须为二进制否则会出的错   var=fs.readFileSync内容(url,“二进制”);   响应。writeHead(200年,“Ok”);   response.write(内容、“二进制”);//格式必须为二进制,否则会出的错    response.end ();      

  

原理:
  

  

使用nodejs的fs.createReadStream来处理,这样处理的好处是断点续传。

        响应。设置(“内容类型”,mimeType);//设置返回类型   var=fs。createReadStream (imageFilePath);   var responseData=https://www.yisu.com/zixun/[];中//存储文件流   如果(流){//判断状态   流。(“数据”,函数(块){   responseData。中推动(块);   });   流。(“结束”,函数(){   var finalData=https://www.yisu.com/zixun/Buffer.concat (responseData)中;   响应。写(finalData);   response.end ();   });   }      

1。客户端读取文件var=fs.createReadStream内容(filePath);
  2.把内容转为数组var缓冲区=new缓冲区(内容);传给httpServer这一步需要特别注意,一定不能把内容当成普通的字符串处理传给httpServer
  3.httpServer解析出数列表组var=?br/>   4.httpServer把数组转为缓冲区,var缓冲区=new缓冲区(列表);
  5.返回response.write (buffer.toString()、“二进制”);//注意,这里必须转为字符串,不能以缓冲传给浏览器。
  6.值得注意的是,这里的缓冲区不能直接返回给客户端,nodejs以二进制格式读取的文件就是一个字符串,只是编码不是普通的utf - 8
  

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

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