【发布时间】:2015-11-28 20:17:20
【问题描述】:
所以我刚刚安装了 node 并使用 express 启动了一个小型 HTTP 服务器。我正在尝试使用 multer 和 HTTP PUT 上传文件,但似乎 multer 无法处理 PUT 文件。
用POST 做同样的事情就可以了。
这是我的main.js:
var express = require('express');
var multer = require('multer');
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, './uploads')
},
filename: function (req, file, cb) {
cb(null, file.originalname)
}
});
var upload = multer({ storage: storage });
var app = express();
app.get('/', function (req, res) {
res.send('Up and running');
});
app.put('/up/:file', upload.any(), function (req, res, next) {
console.log('files: ' + req.files);
console.log(req.params.file);
res.send('got that');
})
app.post('/up', upload.any(), function (req, res, next) {
res.send('got that');
})
var server = app.listen(8888, function(){
var host = server.address().address;
var port = server.address().port;
console.log('Example app listening at http://%s:%s', host, port);
});
使用curl 我可以使用POST 文件就好了,例如。 G。 curl --form "file=@someFile.jpg" http://localhost:8888/up。
我尝试使用curl http://localhost:8888/up/someFile.jpg --upload-file someFile.jpg 和curl -i -T someFile.jpg http://localhost:8888/up/someFile.jpg 放置文件,但它不起作用。 req.files 始终是 undefined。
问题/TL;DR: multer 是否无法通过PUT 接受文件?如何通过快递接收PUT 的文件?实际上,我不需要 express ... 一个普通的节点解决方案就足够了。
【问题讨论】:
标签: node.js express file-upload put multer