Использование angular8 + node.js - Попытка выяснить, как получить (опубликовать) содержимое файла - независимо от того, какой это формат ( UTF8 или base64 или двоичный , в моемcase) в функцию middlewear узла, чтобы впоследствии я мог закодировать ее (при необходимости) в формат base64. Мне удается это сделать, когда содержимое файла - base64, но возникают проблемы, когда оно является двоичным.
См. Мой код: Клиентская сторона: //modalRef.componentInstance - ссылка на модальное окно, подтверждающее загрузку файла.
modalRef.componentInstance.passResult.subscribe(result =>
{
if (result)
{
let fileReader = new FileReader();
fileReader.onload = () =>
{
this.uploadFileContent(fileReader.result.toString());
}
fileReader.readAsText(event.target.files[0]);
//fileReader.readAsText(event.target.files[0], "ascii");
}
event.target.value = null;
this.FileToUpload = null;
});
Это метод uploadFileContent:
uploadFileContent(fileContent : /*string*/any)
{
this.dataService.uploadFile(fileContent).subscribe();
}
Это метод обслуживания:
uploadFile(fileContent : /*string*/any) : Observable<any>
{
let body =
{
file: fileContent
};
return this.http.post<any>(<fileUploadUrl>, body, {
withCredentials:true
}).pipe(
tap(res=>{
console.log('file was uploaded!');
}),
catchError(error => this.doSomething(error))
);
}
Сторона сервера:
router.use(schemaValidation(schema), (req, res, next) =>
{
try
{
let file = req.body.file;
//When receiving the file content in a single fortmat and struct - I would like to encode it
base64 format