Javascript 使用multer上载文件未完全工作(NodeJS)

Javascript 使用multer上载文件未完全工作(NodeJS),javascript,node.js,express,file-upload,Javascript,Node.js,Express,File Upload,我正在使用NodeJS express(MVC),我正在尝试上传一个图像。我试图将图像存储在上传文件夹中,但没有显示任何内容。当我使用console.log(req.files)时,我会得到以下结果(req.buffer打印出一长串的两位数数字和字母)。如何将图像保存到文件夹中 [ { fieldname: 'file', originalname: 'thumbnail.jpg', encoding: '7bit', mimetype: 'i

我正在使用NodeJS express(MVC),我正在尝试上传一个图像。我试图将图像存储在上传文件夹中,但没有显示任何内容。当我使用console.log(req.files)时,我会得到以下结果(req.buffer打印出一长串的两位数数字和字母)。如何将图像保存到文件夹中

 [ 
   { 
     fieldname: 'file',
     originalname: 'thumbnail.jpg',
     encoding: '7bit',
     mimetype: 'image/jpeg',
     buffer: <Buffer ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00 ff db 00 84 00 09 06 07 0d 0d 10 0e 10 0d 0e 0d 0d 0d 0e 10
 0f 0d 0d 0e 0d 0d 0f  0e 0e 0e ... >,
     size: 1347 
   } 
]

multer
基本上是一个中间件,它可以上载文件或转换为某种格式,以后可以在处理程序中使用。因此,从,您可以在您的案例中这样做:

var multer = require('multer'); 
var upload = multer({ dest:'../public/uploads/' });

router.post('/bars/upload', upload.single('someFile') ,function (req, res, next) {

    // if you're here, the file should have already been uploaded

    console.log(req.files); 
    console.log(req.body);// {"someParam": "someValue"}
    res.send(req.files); 
});
upload.html

<form action="/bars/upload" method = 'post' enctype="multipart/form-data">
    <label for='file'>Upload Image</label>
    <input type="file" name="someFile" accept="image/*"/>
    <input type="hidden" name="someParam" value="someValue"/>
    <input type="submit" name='submit' value="submit"/>
</form>

添加
-I
选项以显示详细的响应。

multer
基本上是一个中间件,可以上载文件或转换为稍后在处理程序中使用的某种格式。因此,从,您可以在您的案例中这样做:

var multer = require('multer'); 
var upload = multer({ dest:'../public/uploads/' });

router.post('/bars/upload', upload.single('someFile') ,function (req, res, next) {

    // if you're here, the file should have already been uploaded

    console.log(req.files); 
    console.log(req.body);// {"someParam": "someValue"}
    res.send(req.files); 
});
upload.html

<form action="/bars/upload" method = 'post' enctype="multipart/form-data">
    <label for='file'>Upload Image</label>
    <input type="file" name="someFile" accept="image/*"/>
    <input type="hidden" name="someParam" value="someValue"/>
    <input type="submit" name='submit' value="submit"/>
</form>

添加
-I
选项以显示详细响应。

我也遇到了同样的问题。我使用Postman对我的节点应用程序进行查询。当我删除http头内容类型(设置为URLCoded form)时,问题就解决了。

我也遇到了同样的问题。我使用Postman对我的节点应用程序进行查询。当我删除http头内容类型(它被设置为urlencoded表单)时,问题就解决了。

我也遇到了同样的问题 在dest:“../public/uploads/”中,只需删除/ 然后像这样写 目的地:'public/uploads/' 就这样

我也有同样的问题 在dest:“../public/uploads/”中,只需删除/ 然后像这样写 目的地:'public/uploads/'
就这样

这是个救命恩人!我甚至没有设置http头,但我正在以一种奇怪的格式保存它。我已经在这里说明了这个问题@ChinmayGhag如果你使用postman上传你的文件,你不需要设置自己的头,因为当你选择
表单数据
作为post方法时,这些头会自动为你设置。这是一个救命稻草!我甚至没有设置http头,但我正在以一种奇怪的格式保存它。我在这里说明了这个问题@ChinmayGhag如果您使用postman上载文件,您不需要设置自己的头,因为当您选择
表单数据
作为post方法时,这些头会自动为您设置。