Node.js - 用 Multer 上傳檔案

在開發網頁的過程中,不可避免的會遇到使用者要上傳圖片、檔案,在nodejs中我會使用multer這個library去做處理

Official Website: https://github.com/expressjs/multer

Init

var multer = require('multer');
storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, './upload')
},
filename: function(req, file, cb) {
cb(null, Date.now() + ".pdf")
}
})
var upload = multer({ storage: storage }).single('BP_file');

use

upload(req, res, function(err) {
...
}

注意

  • multer不支援使用HTTP:PUT
  • form method, enctype
  • ajax send FormData
form#post_form(method="post" ,enctype="multipart/form-data",action="#{result._id}")

script(type='text/javascript').
$(document).ready(function(){

$('#post_btn').click(function(){
console.log("click");
$('#post_form').submit(function() {
console.log("submit");

var formData = new FormData($(this)[0]);
alert(formData);

$.post($(this).attr("action"), formData, function(data) {
alert(data);
});

return false;
});