gpt4 book ai didi

node.js - Multer 没有将文件保存为同名且没有扩展名?

转载 作者:行者123 更新时间:2023-12-05 02:10:36 28 4
gpt4 key购买 nike

我正在使用 Multer保存我通过表单上传的文件,但我不知道为什么我的代码将它保存为一个奇怪的名称并且没有扩展名,我刚刚使用了文档中的代码。

server.js:

const multer  = require('multer');
const app = express();
var upload = multer({ dest: 'uploads/' })

app.post('/file', upload.single('filesToAttach'), function (req, res, next) {
console.log(req.file);
loadUserPage(req, res);
})

userPage.ejs:

<form action="/file" method="post" enctype="multipart/form-data">
<div id="frm-attachments">
<div>
<h3>Attachments</h3>
<div>
<input type="file" id="attachFiles" name="filesToAttach" />
<input type="submit" value="Attach">
</div>
<div id="frm-attach-files">
Attached files
<div>
<textarea id="field-attached-files" class="large-textbox" name="attached-files" spellcheck="true" rows="10" cols="50" tabindex="4" disabled="true"></textarea>
</div>
</div>
</div>
</div>
</form>

当我点击提交按钮时,一个新文件出现在文件夹 uploads 中,它应该与我在表单中上传的文件具有相同的名称和相同的扩展名,但它有这个改为名称:

enter image description here

如果我尝试打印(req.file),我会看到:

enter image description here

为什么会这样?我什至不明白为什么他们在文档中写了错误的代码...

最佳答案

可以在外部设置,

试试这个,

const multer  = require('multer');
const app = express();
var storage = multer.diskStorage({
destination: 'uploads/',
filename: function(req, file, callback) {
callback(null, file.originalname);
}
});
var upload = multer({ storage: storage })

app.post('/file', upload.single('filesToAttach'), function (req, res, next) {
console.log(req.file);
loadUserPage(req, res);
})

关于node.js - Multer 没有将文件保存为同名且没有扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58605335/

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