感谢支持
我们一直在努力

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。

赞(0) 打赏
转载请注明出处:服务器评测 » node.js connect 实现文件上传
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏