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');
      });
    });
  };
相關文章
相關標籤/搜索