gpt4 book ai didi

node.js - 如何在node.js中上传多个文件?

转载 作者:太空宇宙 更新时间:2023-11-04 01:06:35 26 4
gpt4 key购买 nike

我需要使用 node.js 上传文件阅读器上传多个文件的帮助。

我正在使用fs = require('fs')。我在选择两个文件时遇到问题,只有一个文件只写入上传目录。

这是我的后端

var files = req.files.files[0];
for (var i = 0; i < files.length; i++) {
file = files[i];
fs.readFile(files[i].path, function(error, data) {
// console.log( files[i].path ) ,here displayed two same both
fs.writeFile(uploadDirectory() + newFileName, data, function(error) {
});
});
}

请帮助我。我的代码有什么问题。谢谢。

最佳答案

您应该避免在直接写入 for 循环内部的异步函数回调中使用 files[i]console.log( files[i].path ) 显示相同内容两次的原因是因为当加载代码时,for 循环已经完成。所以你总是得到数组的最后一个元素。

解决这个问题的最简单方法是创建一个新的作用域(函数)

for (var i = 0; i < files.length; i++) {    
readAndWriteFile(files[i]);
}

var readAndWriteFile = function(file){
fs.readFile(file.path, function(error, data) {
// console.log( file.path ) displays what you expect.
fs.writeFile(/* define new file name */, data, function(error) {
});
});
}

关于node.js - 如何在node.js中上传多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22321304/

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