gpt4 book ai didi

node.js/expressjs简单文件上传问题

转载 作者:太空宇宙 更新时间:2023-11-04 02:58:54 27 4
gpt4 key购买 nike

我正在努力在 Node 服务器上创建一个简单的文件 uploader ,并使用expressjs作为中间件。到目前为止,服务器端如下所示:

app.post('/upload', function(req, res) {
console.log(req.files);

//Handle the file
fs.readFile(req.files.imageUploader.path, function(err, data) {
var newPath = __dirname;
console.log(newPath);
console.log(data);
fs.writeFile(newPath, data, function(err) {
console.log(err);
res.send("AOK");
});
});
});

现在,__dirname 的日志语句是我的源目录,正如预期的那样 (C:\Development\GitHub\ExpressFileUpload),但是上传时发生错误:

{ [Error: EISDIR, open 'C:\Development\GitHub\ExpressFileUpload']
errno: 28,
code: 'EISDIR',
path: 'C:\\Development\\GitHub\\ExpressFileUpload' }

我尝试将 newPath 更改为 /./ 但没有任何变化,出现不同的错误,但仍然是错误。是否与错误中 path 中的双 \\ 有关?我在这里缺少一些简单的东西吗?感谢您的帮助,如果需要更多信息,请告诉我。

最佳答案

__dirname 全局对象是目录,而不是文件。因此,您无法打开它进行写入,而这是 fs.writeFile() 尝试在脚本中执行的操作,因此您获得 EISDIR 的原因。假设您希望使用与上传时相同的名称写入文件,您可以这样做:

var file = req.files.imageUploader;
fs.readFile(file.path, function(err, data) {
var path = __dirname + '/' + file.name;
fs.writeFile(path, data, function(err) {
});
});

关于node.js/expressjs简单文件上传问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19760836/

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