Welcome 微信登录

首页 / 操作系统 / Linux / node.js connect 实现文件上传

这篇文章node.js+Android(使用HttpURLConnection和HttpClient)实现文件上传(见 http://www.linuxidc.com/Linux/2012-02/53532.htm ),使用的是formidable,上篇文章介绍了node.js connect 安装、介绍与实例(见 http://www.linuxidc.com/Linux/2012-02/53528.htm ),那就用connect写一个上传的例子。 主程序代码如下,保存为bodyParser.js,放在敲安装命令的目录下:[javascript]
  1. var connect = require("connect");  
  2.   
  3. var app = connect()  
  4.   .use(connect.static(__dirname + "/public"))  
  5.   .use(connect.bodyParser({uploadDir:__dirname +"/file",keepExtensions:true}))  
  6.   .use(connect.logger())  
  7.   .use(function(req, res, next){  
  8.     if ("GET" != req.method) return next();  
  9.     res.statusCode = 302;  
  10.     res.setHeader("Location""form.html");  
  11.     res.end();  
  12.   })  
  13.   .use(function(req, res){  
  14.     res.setHeader("Content-Type""text/html");  
  15.     res.write("<p>thanks " + req.body.name + "</p>");  
  16.     res.write("<ul>");  
  17.     console.log(req.body);  
  18.     console.log(req.files);  
  19.   
  20.     if (Array.isArray(req.files.images)) {  
  21.       req.files.images.forEach(function(image){  
  22.         var kb = image.size / 1024 | 0;  
  23.         res.write("<li>uploaded " + image.name + " " + kb + "kb</li>");  
  24.       });  
  25.     } else {  
  26.       var image = req.files.images;  
  27.       var kb = image.size / 1024 | 0;  
  28.       res.write("<li>uploaded " + image.name + " " + kb + "kb</li>");  
  29.     }  
  30.   
  31.     res.end("</ul>");  
  32.   });  
  33.   
  34. app.listen(8080);  
  35. console.log("Server started on port 8080");  
静态文件form.html代码如下,放在bodyParser.js同级的public文件夹下: [html]
  1. <html>  
  2.     <body>  
  3.         <form action="/" method="post" enctype="multipart/form-data">  
  4.           <input type="text" name="name" placeholder="Name:" />  
  5.           <input type="file" name="images" multiple="multiple" />  
  6.           <input type="submit" value="Upload" />  
  7.         </form>  
  8.     </body>  
  9. </html>  
代码比较简单,可以查看官方提供的API http://senchalabs.github.com/connect/middleware-bodyParser.html,官方提供的例子https://github.com/senchalabs/connect/blob/1.8.4/examples/bodyParser.js 效果同 node.js+android(使用HttpURLConnection和HttpClient)实现文件上传,需要的话查看这篇文章 见http://www.linuxidc.com/Linux/2012-02/53532.htm。node.js模块connect源码分析node.js实现tomcat经典例子猜数字相关资讯      Node.js 
  • Node.js v7 Beta版引入citgm  (今 10:08)
  • 基于Docker部署Node.js应用环境  (09月26日)
  • Node.js v4.4.5发布下载  (05月25日)
  • Node.js HTTP Web 服务器代码  (09月26日)
  • Ubuntu 16.04 64位 搭建 Node.js   (09月25日)
  • 为什么我从 Python 转战到 Node.js  (05月17日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数