歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> node.js connect 實現文件上傳

node.js connect 實現文件上傳

日期:2017/2/28 15:57:24   编辑:Linux教程
這篇文章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. var app = connect()
  3. .use(connect.static(__dirname + '/public'))
  4. .use(connect.bodyParser({uploadDir:__dirname +'/file',keepExtensions:true}))
  5. .use(connect.logger())
  6. .use(function(req, res, next){
  7. if ('GET' != req.method) return next();
  8. res.statusCode = 302;
  9. res.setHeader('Location', 'form.html');
  10. res.end();
  11. })
  12. .use(function(req, res){
  13. res.setHeader('Content-Type', 'text/html');
  14. res.write('<p>thanks ' + req.body.name + '</p>');
  15. res.write('<ul>');
  16. console.log(req.body);
  17. console.log(req.files);
  18. if (Array.isArray(req.files.images)) {
  19. req.files.images.forEach(function(image){
  20. var kb = image.size / 1024 | 0;
  21. res.write('<li>uploaded ' + image.name + ' ' + kb + 'kb</li>');
  22. });
  23. } else {
  24. var image = req.files.images;
  25. var kb = image.size / 1024 | 0;
  26. res.write('<li>uploaded ' + image.name + ' ' + kb + 'kb</li>');
  27. }
  28. res.end('</ul>');
  29. });
  30. app.listen(8080);
  31. 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。

Copyright © Linux教程網 All Rights Reserved