Как получить байт-код из выбранного pdf-файла в angular

#javascript #angular #typescript

Вопрос:

Я хочу извлечь байт-код из выбранного файла (pdf), чтобы сохранить его в своей базе данных. Но я всегда получаю ошибку, что мой байт не определен. Может ли кто-нибудь взглянуть на мой код и сказать мне, что в нем не так?

Я попытался использовать средство чтения файлов, но мой байт возвращает неопределенное значение, данные формы работают нормально, они отображают на консоли всю информацию, которая мне нужна для файла.

Редактировать:

 uploadFile2(files: FileList | null): void {  const file = files.item(0)  const reader = new FileReader()  reader.readAsDataURL(file)  reader.onload = () =gt; {  this.documentsArray.push({documentType: this.form.controls.dokumentType.value, file: reader.result})  console.log(this.documentsArray)  }  }  

Привет, я отредактировал свой код, и теперь я получаю base64, я думаю, но один вопрос, он начинается так: данные:приложение/pdf;base64,JVBERi0xLjQKJfbk/N8KM………»

правильно ли начать с данных:приложение/pdf или мне нужно что-то изменить, чтобы сохранить это в базе данных

Ответ №1:

Я бы посоветовал вам сохранить файл в виде строки base64 в вашей базе данных. Это выглядело бы следующим образом. С номером строки 2 вы извлекаете файл из вашего события ввода.

 const reader = new FileReader();  reader.readAsDataURL(event.target.files[0]);  reader.onload = (event) =gt; {  if (reader.result) {  //save pdf base64 into database  }  

Комментарии:

1. Привет, не могли бы вы показать мне, как это сделать на моем примере? Я выбираю файл с помощью загрузки файлов, которую открываю нажатием кнопки. Я обновил свой код

2. Я получаю эту ошибку: ИСКЛЮЧЕНИЕ DOMException ОШИБКИ: Не удалось выполнить «readAsDataURL» в «Читателе файлов»: Объект уже занят чтением больших двоичных объектов.

3. Я отредактировал свой код и попытался реализовать его, как вы сказали

4. Я обновил свой код и сделал еще один шаг, не могли бы вы, пожалуйста, взглянуть на него, когда у вас будет время 🙂

5. Вообще никаких проблем, я рад, что вы мне вообще помогаете 🙂 Чтобы я мог сохранить его в своей базе данных вместе с частью данных/приложения? Позже он будет отправлен вместе со службой в мое приложение spring boot, вот почему я спрашиваю