2016-04-01 3 views
0

Я пытаюсь загрузить файл на сервер (построенный с использованием Java), прочитав из потока mfonodb gridfs.nodeJS загрузка файла с использованием библиотеки запросов

exports.upload = function(req, res, next) { 
var IHUrl = config.api.url + "PhotosServlet"; 


var data = req.body; 

var file1 = api.gfs.createReadStream({ 
    _id: data.fileId 
}) 

var formData = { 
    "imgTyp": data.imgTyp, 
    "listingid": data.listingid, 
    "scaleTech": data.scaleTech, 
    "SPC": data.SPC, 
    "SPCUID": data.SPCUID, 
    "varRand": data.varRand, 
    "file1": file1 
}; 

var r = request.post({ 
    url: IHUrl, 
    formData: formData 
}, function(error, IHResponse, body) { 
    if (error) { 
     res.send(500, error); 
     console.log("Error occured uploading file1") 
    } else { 
     console.log("Upload successful", IHResponse); 
     res.send(200, IHResponse); 
    } 
}); 
next(); 
}; 

Файл уже загружен в mfonbf gridfs, прежде чем я начну загрузку файла на сервер upstream.

Я использую следующие nodejs библиотеки:

запрос, gridfs-поток

Я получаю следующее сообщение об ошибке от вышестоящего сервера:

javax.servlet.ServletException: Обработка многоголосных/форм- запрос данных не выполнен. Поток закончился неожиданно

Что здесь может быть неправильно?

+0

Попробуйте удалить 'next();' –

+0

Спасибо за предложение. Я попытался добавить заголовки: {"transfer-encoding": "chunked"}, в заголовки, и он работал без жалобы. – Prabhat

+0

Вот как это будет выглядеть следующим образом: request.POST ({ URL: IHUrl, заголовков: { "перенос-кодирование": "фрагментированный"}, FormData: FormData } – Prabhat

ответ

0

Я понял, что это было какое-то время и проблема, с которой некоторые из вас могут столкнуться, и решение не было тем, что я опубликовал в комментариях, поскольку позже я нашел больше проблем. Проблема, которую мы имели, заключалась в том, что сервлет java, который мы отправляли в виде многостраничных данных, не смог обработать данные, помеченные как данные, и настройки заголовков не будут вам полезны. использование библиотеки запросов вам не поможет. Мне пришлось использовать restler (https://www.npmjs.com/package/restler), чтобы отправить все многостраничные данные в один кусок.

Смежные вопросы