Я загружаю изображения на сервер Nodejs, используя класс Angular 2 HTTPRequest, а также отслеживаю прогресс загрузки. После завершения загрузки я возвращаю путь к загруженному файлу в ответ на запрос POST. Я застрял / не могу получить возвращаемое значение почтового запроса. Мне нужен URL-адрес, чтобы показать миниатюру только что загруженного изображения.
Приведенный ниже фрагмент взят из Nodejs.
router.post('/',function(req, res, next) {
var form = new formidable.IncomingForm();
var oldPath;
var newPath;
form.parse(req, function(err, fields, files) {
for(var file in files) {
if (!files.hasOwnProperty(file)) {
continue;
}
oldPath = files[file].path;
newPath = './uploadedFiles/' + files[file].name;
fs.renameSync(oldPath, newPath);
}
res.json(newPath);
res.end();
});
module.exports = router;
Приведенный ниже фрагмент взят из Angular 2 на стороне клиента.
uploadFiles(f, progressUpdate) {
this.files = f;
let req: any;
const data = new FormData();
for (let i = 0; i < this.files.length; i++) {
data.append('file' + i, this.files[i], this.files[i].name);
}
req = new HttpRequest('POST', 'api/upload', data, {
reportProgress: true
});
// The `HttpClient.request` API produces a raw event stream
// which includes start (sent), progress, and response events.
return this.http.request(req).pipe(
map(event => this.getEventMessage(event, this.files[0])),
tap(message => progressUpdate(message)),
last()
);
}
Сохраняю в папку на сервере.
Поэтому используйте обратный вызов или обещание дождаться завершения сохранения файла, стандартизируйте имя файла и верните предопределенный путь. Можете ли вы сделать эту часть вашего кода доступной?
В частности, я борюсь с кодом на стороне клиента. Как добраться до значения, возвращаемого сервером?





Хорошо, так что разобрался сам ... Был запущен HttpEvent под названием EventType.Response. У него был объект события, в котором свойство body содержало ответ, который я возвращал с сервера ... Моя плохая ...
Вы сохраняете файл в базе данных или в каталоге? Можем ли мы увидеть эту часть кода?