use*_*888 4 javascript fs node.js
我试图上传文件并移动到已经存在的新目录。按照在 Node.js 中写入文件,但出现错误:
Error: EISDIR, open '/Users/name/Sites/project/app/assets/images/UploadTemporary/'
at Error (native)
我发现使用 Node.js 我得到了“错误:EISDIR,读取”和Node.js 错误:EISDIR,打开错误类似的错误消息,我的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);
});
Run Code Online (Sandbox Code Playgroud)
当您将文件写入特定目录时,您还需要提供实际的目标文件名。与cp命令不同,目标文件名不会由fs模块推断。
在您的情况下,您正在尝试写入目录而不是文件。这就是为什么你会EISDIR出错。为了解决这个问题,正如你在评论中提到的,
var destinationFile = appDir + '/assets/images/UploadTemporary/' + newfilename;
Run Code Online (Sandbox Code Playgroud)
也包括文件名。
| 归档时间: |
|
| 查看次数: |
7673 次 |
| 最近记录: |