Как сохранить файл PDF в базе данных SQLite в Android - PullRequest
1 голос
/ 26 апреля 2011

На самом деле я хочу загрузить файл PDF в наш телефон Android и не хочу давать разрешение открывать файл PDF на ПК, когда он пытается открыть его, подключив телефон к ПК.поэтому я хочу пойти с сохранением файла PDF в решении базы данных SQLite.

Мой вопрос ...
Можно ли сохранить файл PDF в базе данных SQLite?Если да, то как?Или есть другой способ реализовать такую ​​же функциональность?

Пожалуйста, помогите мне ...

Спасибо ...

Ответы [ 4 ]

2 голосов
/ 26 апреля 2011

Одним из решений является использование BLOB-объектов и сохранение исходных данных файла в виде столбца в БД.

Другое решение, которое, на мой взгляд, лучше хранить файлы на Internal Storage и в БД просто для хранения путей к файлам.Внутреннее хранилище является частным для вашего приложения, поэтому никто не будет иметь доступ к файлам.Но будьте осторожны, в обоих случаях файлы хранятся в памяти телефона, и люди могут оказаться в ситуации, когда в телефоне больше нет памяти.

1 голос
/ 26 апреля 2011

Можно.Просто прочитайте все байты PDF-файла и сохраните его в поле BLOB-объекта sqlite db.

0 голосов
/ 26 апреля 2011

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

Мое решение - хранить файл PDF в каталоге и использовать строковый указатель на имя файла. Это приведет к более быстрым запросам и уменьшению базы данных. Единственным недостатком является то, что вам приходится писать функциональность, чтобы переименовывать повторяющиеся записи и удалять файлы из файловой системы при удалении записи.

Пожалуйста, прокомментируйте, если (большие) двоичные файлы в базах данных замедляют работу базы ...

0 голосов
/ 26 апреля 2011

AFAIK Sqlite поддерживает тип данных BLOB, я использовал BLOB для хранения изображений в базах данных MySql, я думаю, вы можете сделать то же самое, считывая содержимое файла и сохраняя его в столбце BLOB в SQLite

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...