我一直在使用Node.js来完成一个项目,到目前为止一直都很顺利。我正在使用express和节点。总的来说,我的目标非常简单......将图像上传到上传文件夹中的服务器。奇怪的是上传本身实际上有效,但当我去使用“重命名”功能时,它表示路径错误/权限与此错误:ENOENT。
我还测试过,通过调用read函数检查文件路径,确保路径100%正确。似乎只有在尝试修改文件时才会中断,因此我推断它是一个权限问题(除非对重命名函数有某种特殊要求)。我注意到,每次上传文件时,权限都设置为“custom”,并且只向除用户名之外的每个用户授予读取权限。我将在下面发布与此问题相关的代码:
/app/routes.js
var fs = require('fs');
app.post('/api/file-upload/:page_id', function(req, res) {
// fs.readFile(tmp_path, function (err, data) {
// if (err) throw err;
// console.log(data);
// });
var target_path = './public/images/' + req.files.featuredimg.name;
fs.rename(req.files.featuredimg.path, target_path, function(err) {
if (err) throw err;
fs.unlink(tmp_path, function() {
if (err) throw err;
res.send('File uploaded to: ' + target_path + ' - ' + req.files.featuredimg.size + ' bytes');
});
});
});
server.js
app.use(express.bodyParser({uploadDir:'./uploads'}));
所有内容最终都在/ uploads中server.js旁边的根文件夹中,按预期工作。我似乎无法修改它们。我已经尝试了我能想到的一切,并且已经找到了问题。希望这是一个简单的修复。
希望有人可以帮我解决这个问题。我真的很感激!
答案 0 :(得分:0)
确保您已在 public 下创建 images 文件夹。我有类似的问题。