#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, вот почему я спрашиваю