nodejs express 处理上传

在Express中上传文件时不须要依赖其余的模块,文件上传能够很好工做于Express框架内。就像使用req.body同样,如今你能够使用req.files来得到你上传的文件中的具体信息。express

若是你不须要指定上传文件的目录,那么你不须要对app.js作任何的改变,文件将默认上传到'/tmp'目录。可是若是你但愿对你上传的文件指定特定目录,你仅仅须要修改一下内容:服务器

app.use(express.bodyParser({uploadDir:'./uploads'}));

实验app

客户端代码:框架

<form method="post" enctype="multipart/form-data" action="/upload">
  <input type="file" name="myfile">
  <input type="submit">
</form>

服务器端代码:post

// 移动文件须要使用fs模块
var fs = require('fs');
app.post('/upload', function(req, res) {
     // 得到文件的临时路径
     var tmp_path = req.files.myfile.path;
    // 指定文件上传后的目录 - 示例为"images"目录。 
    var target_path = './public/images/' + req.files.myfile.name;
    // 移动文件
    fs.rename(tmp_path, target_path, function(err) {
      if (err) throw err;
      // 删除临时文件夹文件, 
      fs.unlink(tmp_path, function() {
         if (err) throw err;
         res.send('File uploaded to: ' + target_path + ' - ' + req.files.myfile.size + ' bytes');
      });
    });
  };
相关文章
相关标签/搜索