node.js connect 实现文件上传

Linux大全评论370 views阅读模式

这篇文章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

企鹅博客
  • 本文由 发表于 2020年6月3日 19:02:32
  • 转载请务必保留本文链接:https://www.qieseo.com/209967.html

发表评论