2015-01-14 5 views
0

Я отправляю изображение с моего iPhone-приложения на сервер. Restful API находится в экспресс-JS. Я получаю изображение на сервере с помощью запроса POST. Я могу печатать двоичные данные, но не могу их правильно сохранить. Когда я открываю изображение из указанного места, его повреждение. Вот мой экспресс-код js.Express JS Сохранить изображение на сервере

app.post('/api/pictures',function(req,res){ 
console.log(req.headers); 
    var body = ''; 
    filePath = 'C:/Users/Desktop/restful/image.png'; 
    req.on('data', function(data) { 
    console.log(data); 
    body += data; 
}); 

req.on('end', function(){ 
    fs.appendFile(filePath, body, function() { 
    res.end(); 
    }); 
    }); 
    res.send("Success!"); 
}); 

Мои req.headers является

enter image description here

ли я делаю что-то неправильно?

Где, как я получаю этот ответ на стороне клиента

{ status code: 200, headers { 
Connection = "keep-alive"; 
"Content-Length" = 8; 
"Content-Type" = "text/html; charset=utf-8"; 
Date = "Wed, 14 Jan 2015 16:15:01 GMT"; 
"X-Powered-By" = Express; 
} } 
upload completed, response: Optional(Success!) 

Спасибо заранее.

ответ

0

Вы должны использовать многочастному-синтаксического анализа промежуточного уровня, такие как multer, multiparty, formidable или connect-busboy.

+0

Не могли бы вы дать мне какой-нибудь пример кода или ссылку на учебник? – Rahul

+1

В каждом проекте есть примеры. – mscdex

+0

Я искал образец кода для многопартийности здесь https://github.com/andrewrk/node-multiparty Но не нашел никакого кода или учебника, связанного с REST API. То, что я нашел, связано с почтовыми изображениями из html-формы. Но я отправляю изображение из приложения iPhone. Я очень новичок в javascript. Не могли бы вы мне помочь? Я действительно застрял здесь. – Rahul

0

Наконец-то я могу загрузить изображение, используя connect-multiparty.

app.post('/api/uploadimage', multipartMiddleware, function(req, res) { 
console.log(req.body, req.files); // check console 

fs.readFile(req.files.urForm-data_name.path, function (err, data) { 
     fs.writeFile(newPath, data, function (err) { 
     }); 
    }); 
}); 
Смежные вопросы