node.js Error: EISDIR, open
node.js Error: EISDIR, open
我尝试上传文件并移至已存在的新目录。
按照 Writing files in Node.js 但是我得到了错误:
Error: EISDIR, open '/Users/name/Sites/project/app/assets/images/UploadTemporary/'
at Error (native)
并且我发现了 Using Node.js I get, "Error: EISDIR, read" and Node.js Error: EISDIR, open Error 类似的错误信息,我的 UploadTemporary
文件夹已经存在,我搞错了吗?
我不明白,如果它不是目录,那还能是什么?
var multipart = require('connect-multiparty');
var fs = require('fs');
var path = require('path');
var appDir = path.dirname(require.main.filename);
...
var sourceFile = req.files.file[0].path;
var destinationFile = appDir + '/assets/images/UploadTemporary/';
var source = fs.createReadStream(sourceFile);
var destination = fs.createWriteStream(destinationFile);
source.pipe(destination);
source.on('end', function () {
fs.unlinkSync(sourceFile);
});
当您将文件写入特定目录时,您还需要提供实际的目标文件名。与 cp
命令不同,fs
模块不会推断目标文件名。
在您的情况下,您正在尝试写入目录而不是文件。这就是您收到 EISDIR
错误的原因。要解决这个问题,正如您在评论中提到的,
var destinationFile = appDir + '/assets/images/UploadTemporary/' + newfilename;
也包括文件名。
我尝试上传文件并移至已存在的新目录。
按照 Writing files in Node.js 但是我得到了错误:
Error: EISDIR, open '/Users/name/Sites/project/app/assets/images/UploadTemporary/'
at Error (native)
并且我发现了 Using Node.js I get, "Error: EISDIR, read" and Node.js Error: EISDIR, open Error 类似的错误信息,我的 UploadTemporary
文件夹已经存在,我搞错了吗?
我不明白,如果它不是目录,那还能是什么?
var multipart = require('connect-multiparty');
var fs = require('fs');
var path = require('path');
var appDir = path.dirname(require.main.filename);
...
var sourceFile = req.files.file[0].path;
var destinationFile = appDir + '/assets/images/UploadTemporary/';
var source = fs.createReadStream(sourceFile);
var destination = fs.createWriteStream(destinationFile);
source.pipe(destination);
source.on('end', function () {
fs.unlinkSync(sourceFile);
});
当您将文件写入特定目录时,您还需要提供实际的目标文件名。与 cp
命令不同,fs
模块不会推断目标文件名。
在您的情况下,您正在尝试写入目录而不是文件。这就是您收到 EISDIR
错误的原因。要解决这个问题,正如您在评论中提到的,
var destinationFile = appDir + '/assets/images/UploadTemporary/' + newfilename;
也包括文件名。