我在我的node.js应用程序中使用multer,虽然我试图看看我应该如何找到multer将文件放在post函数中的位置,以便我可以对其进行后期处理。什么是正确的方法?目前我有这个:
var express = require('express')
var app = express()
var multer = require('multer')
var upload = multer()
var storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, './public/uploads/');
},
filename: function (req, file, callback) {
callback(null, file.fieldname + '-' + Date.now());
}
});
var cpUpload = upload.fields([{ name: 'myfile', maxCount: 1 }]);
app.post('/profile', cpUpload, function (req, res, next) {
var destination, filename;
storage.getDestination(req, req.files.myfile[0], function(param1, dest) { destination = dest; })
storage.getFilename(req, req.files.myfile[0], function(param1, fn) { filename = fn; })
var path = destination + '/' + filename;
})
我查看了req.files.myfile[0]
条目,看看是否提供了目标路径,但情况似乎并非如此:
{ fieldname: 'myfile',
originalname: 'mytextfile.txt',
encoding: '7bit',
mimetype: 'text/plain' }
我想确保我使用的任何方法都符合API的期望。
答案 0 :(得分:0)
使用未指定字段名称的multer
函数导致没有保存文件(在这种情况下,它仅保存非文件字段)。如果要接受文件字段,则必须传递字段的字符串名称。
答案 1 :(得分:0)
在res对象中提供上传的文件详细信息
router.post('/file_upload', upload.single('photo'), function (req, res) {
console.log(req.file)
res.status(204).end()
});
参考: - http://wiki.workassis.com/nodejs-express-get-post-multipart-request-handling-example/