我如何上传node.js中的多个文件?

我需要使用node.js上传文件读取器来上传多个文件。

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

这是我的后端

 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) { }); }); } 

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

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

解决这个问题的最简单方法就是创build一个新的范围(函数)

 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) { }); }); }