我正在使用multer从此表单中获取文件
<form action="/api/pimage" method="POST" enctype="multipart/form-data">
<fieldset>
<input type="file" name="profileimage">
<input type="submit">
</fieldset>
</form>
使用此服务器端脚本
app.post('/api/pimage', function(req, res, next) {
console.log(req.body, req.files);
});
问题是req.body正在打印{profileimage:'image.png'} 和req.files正在打印{} 你在哪里看到问题? 感谢
P.S。我正在使用app.use(bodyParser.urlencoded({ extended: false }));
来获取req.body和app.use(multer({ dest: './uploads/'}));
来获取req.files
答案 0 :(得分:1)
我发现在multer
旁边使用bodyParser
会导致req.file
未定义。如果您遇到问题,请务必检查。
答案 1 :(得分:0)
我把MY(有很多我想象的,肯定更好的)解决方案用来帮助很多像我这样的人,因为我在整整一天都进行了搜索; - (
var express = require('express');
var fileUpload = require('express-fileupload');
var fs = require("fs");
var app = express();
console.log('étape 0');
app.use(express.static('mesStatic'));
app.use(fileUpload());
console.log('étape 1');
app.get('/indexFileUpload.htm', function (req, res) {
res.sendFile( __dirname + "/" + "indexFileUpload.htm" );
})
console.log('étape 2');
app.post('/file_upload', function (req, res) {
console.log('étape 3');
console.log('req.files:' , req.files);
if (!req.files) {
res.send('No files to upload.');
return;
}
console.log('req.files.file.data:' , req.files.file.data);
var bufDataFile = new Buffer(req.files.file.data, "utf-8");
console.log('étape 3.1');
console.log('__dirname : ' + __dirname);
fs.writeFile(__dirname + '/file_upload/output.txt', bufDataFile, function(err) {
if (err) {
return console.error(err);
}
else {
console.log("Data written successfully !");
}
console.log('étape 4');
res.end('Fin OK !!!');
})
})
var server = app.listen(8081, function () {
var host = server.address().address
var port = server.address().port
console.log("Example app listening at http://%s:%s", host, port);
})
答案 2 :(得分:0)
在location = domain.com/abc/xyz/lmn/1.0.0-alpha/abc.html {
rewrite ^(.*)$ domain.com/abc/xyz/lmn/1.0/abc.html;
}
中要求req.file
之前,您必须提供为multer定义的上传功能,您可以按照下面给出的代码
function(req, res)