我如何上传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) { }); }); }