gpt4 book ai didi

javascript - 使用 Multer 上传文件,不知道他们的字段名

转载 作者:数据小太阳 更新时间:2023-10-29 04:58:59 28 4
gpt4 key购买 nike

看完这篇文章: http://lollyrock.com/articles/express4-file-upload/

我发现 Multer 过去允许在您不知道要上传的表单字段的名称时上传文件。例如,如果您查看文章的“使用 Multer”部分,您会发现作者没有使用 .single().array(),或调用 app.use() 时的 .fields()。如果您使用当前版本的 Multer 执行此操作,您将收到错误 TypeError: app.use() requires middleware functions

虽然我对如何使用 .single().array().fields() 略有了解,我当前的项目要求我向我的服务器发送不特定数量的文件(可能是一系列 .png.log 文件)。因此,我事先不知道字段名称是什么。

使用本文 (0.1.6) 中使用的 Multer 版本很容易做到这一点,但在当前版本的 Multer (1.0.3) 中尝试时似乎不可能,因为您需要指定表单字段名。

或者,在线查找 Multer 的完整指南一直是一项挑战,因为最好的指南似乎是 GitHub 存储库的自述文件,而似乎缺少该指南。也许我正在寻找的答案会在某个地方的指南中。

谢谢!

最佳答案

只需使用 multer.any() 即可在 request.files 中获取这些文件。

var router   = express.Router();
var app = express();
var _fs = require("fs");
var _config = require("./config");
var multer = require("multer");
var upload = multer({ dest: _config.tempDir })

app.use(bodyParser.urlencoded({extended:true}));

app.post("/api/files", upload.any(), function(req, res){
var files = req.files;
if(files){
files.forEach(function(file){

//Move file to the deployment folder.
var newPath = _utils.DetermineFileName(file.originalname, _config.destinationDir);
_fs.renameSync(file.path, path.join(_config.destinationDir, newPath));
var newFileName = path.basename(newPath);
console.log(newFileName + ' saved at ' + _config.destinationDir );
});
}
};

关于javascript - 使用 Multer 上传文件,不知道他们的字段名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31881205/

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