使用的示例multer
module:
var express = require("express");
var multer = require('multer');
var app = express();
app.get('/',function(req,res){
res.sendFile(__dirname + "/index.html");
});
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './uploads');
},
filename: function (req, file, callback) {
callback(null, file.fieldname + '-' + Date.now());
}
});
app.post('/api/file',function(req,res){
var upload = multer({ storage : storage}).single('userFile');
upload(req,res,function(err) {
if(err) {
return res.end("Error uploading file.");
}
res.end("File is uploaded");
});
});
app.listen(3000,function(){
console.log("Working on port 3000");
});
一个例子formidable
module:
var formidable = require('formidable'),
http = require('http'),
util = require('util');
http.createServer(function(req, res) {
if (req.url == '/upload' && req.method.toLowerCase() == 'post') {
// parse a file upload
var form = new formidable.IncomingForm();
form.parse(req, function(err, fields, files) {
if (err)
do-smth; // process error
// Copy file from temporary place
// var fs = require('fs');
// fs.rename(file.path, <targetPath>, function (err) { ... });
// Send result on client
res.writeHead(200, {'content-type': 'text/plain'});
res.write('received upload:\n\n');
res.end(util.inspect({fields: fields, files: files}));
});
return;
}
// show a file upload form
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>'
);
}).listen(8080);
摘自Node.js -
上传文件 https://web.archive.org/web/20170816202112/https://stackoverflow.com/documentation/node.js/4080/file-upload。原作者是Iceman https://stackoverflow.com/users/6237235/iceman, 艾康·莫格瓦伊 https://stackoverflow.com/users/6121703/aikon-mogwai and Mikhail https://stackoverflow.com/users/5526354/mikhail。归属详细信息可以在贡献者页面 https://web.archive.org/web/2/https://stackoverflow.com/documentation/contributors/topic/4080。来源已获得许可抄送-SA 3.0 https://creativecommons.org/licenses/by-sa/3.0/并且可以在文档存档 https://archive.org/details/documentation-dump.7z。参考主题 ID:4080。