2016-06-24 2 views
0

Мне нужно загрузить изображение на сервер, используя узел js.The изображение идет из приложения ios в качестве файла данных. Я использовал следующий код,Node Js Загрузка изображения Не работает

var fs = require("fs"); 
    var imageName = req.files.profile_image.name; 
    fs.readFile(req.files.profile_image.path, function (err, data) { 
    console.log(imageName); 
    // If there's an error 
    if(!imageName){ 
     console.log("There was an error") 
     //res.redirect("/"); 
     //res.end(); 
    } else { 
     console.log(data); 
     var newPath = 'http://example.com/images/' + imageName; 
     // write file to uploads/fullsize folder 
     fs.writeFile(newPath, data, function (err) { 
     // let's see it 
     console.log(err); 
     //res.redirect("http://example.com/images/" + imageName); 
     }); 
    } 
    }); 

Когда я запускаю этот код, я не получил ошибок нет, но изображение не загружено в папке изображений.

Я получаю следующее сообщение об ошибке с fs.writeFile,

{ Error: ENOENT: no such file or directory, open 'http://example.com/images/user-profile.jpg' 
    at Error (native) 
    errno: -2, 
    code: 'ENOENT', 
    syscall: 'open', 
    path: 'http://example.com/images/user-profile.jpg' } 

Пожалуйста, помогите.

+0

может быть файл записи разрешение вопроса на сервере –

+0

попробовать с фс .move –

+0

TypeError: fs.move не является функцией, которую я получаю. Как проверить проблему с разрешением. –

ответ

2

Вы не можете написать изображение, которое хотите получить в качестве URL ...
Это должен быть локальный путь на сервере, на котором запущено приложение.

fs.readFile(req.files.displayImage.path, function (err, data) { 
    // ... 
    var newPath = __dirname + "/uploads/uploadedFileName"; 
    fs.writeFile(newPath, data, function (err) { 
    res.redirect("back"); 
    }); 
}); 

Также не переписывают изображение в свой новый путь, но вместо того, чтобы переместить его (с переименованием()):

fs.readFile(req.files.displayImage.path, function (err, data) { 
    // ... 
    var newPath = __dirname + "/uploads/uploadedFileName"; 

    fs.rename(files.upload.path, _path +'/'+ img_name + '.png', function (error) { 
    res.redirect("back"); 
    }); 
}); 
Смежные вопросы