Я знаю, что этот вопрос задан, но мой ум был взорван моей неспособностью получить эту работу. Я пытаюсь загрузить несколько изображений на моем сервере с помощью следующего кода:Исключительная загрузка нескольких файлов - ENOENT, нет такого файла или каталога
var formidable = require('formidable');
var fs = require('fs');
...
router.post('/add_images/:showcase_id', function(req, res){
if(!admin(req, res)) return;
var form = new formidable.IncomingForm(),
files = [];
form.uploadDir = global.__project_dirname+"/tmp";
form.on('file', function(field, file) {
console.log(file);
file.image_id = global.s4()+global.s4();
file.endPath = "/img/"+file.image_id+"."+file.type.replace("image/","");
files.push({field:field, file:file});
});
form.on('end', function() {
console.log('done');
console.log(files);
db.get("SOME SQL", function(err, image_number){
if(err){
console.log(err);
}
var db_index = 0;
if(image_number) db_index = image_number.image_order;
files.forEach(function(file, index){
try{
//this line opens the image in my computer (testing)
require("sys").exec("display " + file.file.path);
console.log(file.file.path);
fs.renameSync(file.file.path, file.file.endPath);
}catch (e){
console.log(e);
}
db.run("SOME MORE SQL"')", function(err){
if(index == files.length)
res.redirect("/admin/gallery"+req.params.showcase_id);
});
});
});
});
form.parse(req);
});
Линия, которая открывает файл с помощью системных вызовов работает нормально, но я по-прежнему получать : Error: ENOENT, no such file or directory '/home/[username]/[project name]/tmp/285ef5276581cb3b8ea950a043c6ed51'
по инструкции переименования.
значение file.file.path является: /home/[username]/[project name]/tmp/285ef5276581cb3b8ea950a043c6ed51
Я так растерялся, и попробовал все. Что я делаю не так?
Возникает вопрос, почему вы получаете 'ENOENT', или почему путь не является каким-то другим значением. Существует ли каталог, о котором он жалуется, существует? – loganfsmyth
Вопрос в том, почему я получаю 'ENOENT'. Каталог существует. Я знаю это, потому что без 'try/catch' сервер выйдет из строя, и поскольку это произойдет до того, как грозное очистит каталог загрузки, файлы все равно будут там. –
Есть ли трассировка стека для ошибки? Просто сообщение об ошибке не работает. – loganfsmyth