Хранение и динамическая загрузка PDF-файлов с сервера в узле js

#android #node.js #android-studio #pdf #handlebars.js

Вопрос:

Я пытаюсь создать приложение, которое отображает список PDF-файлов, а затем загружает pdf-файл в новую вкладку браузера / активность Android.

Идея заключается в том, что пользователь нажмет кнопку «Лекции», а затем ему будет показан список лекций, при нажатии на любой элемент списка будет загружен конкретный pdf-файл.

В настоящее время у меня есть серверная часть mysql node js для входа пользователя и маршрутов на другие страницы, за которой следуют как руль, так и интерфейс Android.

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

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

Буду признателен за любое направление или решение!

Заранее спасибо

Мохаммед V

Ответ №1:

Не зная, как у вас настроена база данных, я расскажу подробнее о том, как вы это сделаете, а затем измените по мере необходимости. В большинстве случаев вы, вероятно, захотите использовать хранилище объектов для хранения файлов PDF. Это позволит получить доступ к любому приложению.

  1. Ваша база данных должна содержать имя файла PDF-файла, например, допустим, что ваша таблица для «файлов» как таковая

идентификатор, имя файла, имя, расширение, идентификатор курса

Здесь у вас будет имя файла, возможно, тип расширения и идентификатор ссылки

  1. Затем в ответном вызове вы просто возвращаете запрос для файлов, например, допустим, вы выполняете запрос, например, ВЫБЕРИТЕ имя файла, имя, ГДЕ courceID = ‘12345’

Затем вы возвращаете это в представление, если это ejs, то вы просто передадите объект и сделаете что-то вроде

 <% for ( in in files ) {%>
<div><a href="url-to-object-store/<%-files[i].filename%>"><%-files[i].filename%>
<%}%>
 

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

1. Спасибо за ваш быстрый ответ! итак, в настоящее время в моей базе данных есть 2 таблицы, 1 для сведений о пользователе(имя, адрес электронной почты, пароль, уровень обучения), 2-я таблица в настоящее время содержит все сведения о модуле(код модуля, название модуля, уровень обучения) для каждого уровня, поэтому, используя ваш метод, я бы создал 3-ю таблицу с именами файлов pdf, как вы показали.

2. Да, обычно вы делаете это таким образом, чтобы просто сопоставить его с деталями модуля с помощью идентификатора модуля или нескольких идентификаторов, если PDF используется для более чем одного модуля.