gpt4 book ai didi

javascript - 使用 multer 上传文件不能完全工作 (NodeJS)

转载 作者:行者123 更新时间:2023-11-30 09:42:03 25 4
gpt4 key购买 nike

我正在使用 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
}
]

HTML:

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

Node JS

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

router.post('/bars/upload', function (req, res, next) {
console.log(req.files);
res.send(req.files);
});

最佳答案

multer 基本上是一个中间件,可以上传文件或转换成某种格式,稍后可以在处理程序中使用。所以,从 examples ,你可以在你的情况下这样做:

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>

如果还是不行,你可以使用命令行调试,这通常可以帮助我判断是服务端还是客户端有问题。

curl --form "someFile=@/path/to/file" -X POST http://localhost:3000/bars/upload

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

关于javascript - 使用 multer 上传文件不能完全工作 (NodeJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40666877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com