tym*_*eJV 0 upload node.js express
我正在使用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");
});
});
});
Run Code Online (Sandbox Code Playgroud)
现在,日志语句__dirname
是我的源目录,如预期的那样(C:\ Development\GitHub\ExpressFileUpload),但上传时发生错误:
{ [Error: EISDIR, open 'C:\Development\GitHub\ExpressFileUpload']
errno: 28,
code: 'EISDIR',
path: 'C:\\Development\\GitHub\\ExpressFileUpload' }
Run Code Online (Sandbox Code Playgroud)
我试着改变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) {
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2581 次 |
最近记录: |