zoukankan      html  css  js  c++  java
  • Node.js学习笔记之文件上传

    推荐使用第三方的模块:formidable

    一丶使用方法

       1丶推荐一个第三方模块管理的平台 https://www.npmjs.com/,里边有各种我们需要的模块,formidable模块就可一在里边找到;

     2丶进入该平台搜formidable即可

       3丶具体实现功能看代码

    var formidable = require('formidable'),    //引入第三的文件上传模块
        http = require('http'),
        util = require('util'),
        path = require('path'),           //path和fs模块引入是为了给上传的文件改名,默认上传的文件是没有后缀名的
        fs = require('fs')    
     
    var server = http.createServer(function(req, res) {
      if (req.url == '/upload' && req.method.toLowerCase() == 'post') {   //文件上传的提交方式必须为post,
        var form = new formidable.IncomingForm();
    	  form.uploadDir = "./dir";              //设置文件上传的接受文件夹
         form.parse(req, function(err, fields, files) {
          var oldpath = __dirname+'/'+files.upload.path
          var newpath = __dirname +'/dir/'+ parseInt(Math.random()*1000+1000)+path.extname(files.upload.name);
          fs.rename(oldpath, newpath, function(err){       //上传完毕执行文件改名,该方法为fs模块rename
              if(err){throw Error("改名失败")}
               res.writeHead(200, {'content-type': 'text/plain'});
               res.end('success');           
          })
        });
        return;
      }
     
      res.writeHead(200, {'content-type': 'text/html'});
      res.end(
        '<form action="/upload" enctype="multipart/form-data" method="post">'+
        '<input type="text" name="title"><br>'+
        '<input type="file" name="upload" multiple="multiple"><br>'+
        '<input type="submit" value="Upload">'+
        '</form>'
      );
    })
    server.listen(3000,'192.168.5.69');  //监听到自己的电脑的ip
    

      

     

     

  • 相关阅读:
    Linux下MySQL主从同步配置
    Tortoisegit图文使用教程
    C语言I博客作业06
    第十周助教总结
    C语言I博客作业04
    C语言I博客作业02
    第十一周助教总结
    第十二周助教总结
    第九周助教总结
    C语言I博客作业02
  • 原文地址:https://www.cnblogs.com/szyblogs/p/7115632.html
Copyright © 2011-2022 走看看