Перейти к содержимому

Как хранить изображения в базе данных

  • автор:

Как хранить фото для товара в БД?

Пишу интернет-магазин MVC Rest api с использованием Spring Boot , Hibernate , PostgreSQL . Мне необходимо иметь для товаров фотографии. Соответственно, отсюда вопрос как вообще это реализовать? Вариант с хранением картинок прямо в БД не подойдет, поэтому я решил хранить в БД ссылки на фото, которые у меня хранятся на жестком диске. Но как все это реализовать в коде? В Entity получается у меня поле с типом String ? Java:

private String image; 
alter table drink add column image varchar; 

А в БД столбец с ссылками (путь) к фото? В таком случае как вывести изображение на стороне клиента, ведь мне будет выдаваться не фото, а ссылка? Получается нужно писать некий метод, который будет до вывода находить файл по ссылке и выводить его? Но как?

Как хранить изображения в MySQL с помощью BLOB

BLOB (или Binary Large Object, большой двоичный объект) – это тип данных MySQL, который позволяет хранить двоичные данные: изображения, мультимедиа и файлы PDF.

Хранить изображения (такие как фотографии и подписи) в базе данных MySQL вместе с другой информацией удобно в том случае, если вы разрабатываете приложения с сильной привязкой к БД (например, портал поиска работы, база данных студентов или финансовое приложение), и в этой БД изображения должны быть синхронизированы с другими данными.

И тогда на помощь приходит тип данных BLOB. Этот подход устраняет необходимость в создании отдельной файловой системы для хранения изображений, а также централизует базу данных, делая ее более портативной и надежной, поскольку данные изолированы от файловой системы. А еще это упрощает создание резервных копий, поскольку вы можете создать один дамп MySQL, содержащий все ваши данные.

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

В этом мануале мы расскажем о том, как использовать тип данных BLOB для хранения изображений с помощью PHP.

Требования

  • Сервер Ubuntu 18.04, предварительно настроенный согласно этим инструкциям.
  • Стек LAMP, установленный на вашем сервере. С установкой вам поможет этот мануал (раздел о виртуальных хостах можно пропустить, здесь мы не будем их использовать).

1: Создание базы данных

Давайте начнем с создания тестовой базы данных для этого проекта. Подключитесь к серверу по SSH, а затем выполните следующую команду, чтобы войти на сервер MySQL как пользователь root:

sudo mysql -u root -p

Введите root-пароль базы данных MySQL и нажмите Enter, чтобы продолжить.

После этого выполните следующую команду, чтобы создать базу данных. В этом руководстве мы назовем ее test_company:

CREATE DATABASE test_company;

После создания БД вы увидите следующее:

Query OK, 1 row affected (0.01 sec)

Теперь нам нужно создать на сервере MySQL учетную запись test_user; не забудьте заменить PASSWORD сложным паролем:

CREATE USER ‘test_user’@’localhost’ IDENTIFIED BY ‘PASSWORD’;

Вы получите следующий результат:

Query OK, 0 rows affected (0.01 sec)

Чтобы предоставить пользователю test_user полные права доступа к базе данных test_company, запустите команду:

GRANT ALL PRIVILEGES ON test_company.* TO ‘test_user’@’localhost’;

Вы должны получить следующий результат:

Query OK, 0 rows affected (0.01 sec)

В завершение нужно сбросить таблицы привилегий, чтобы MySQL перезагрузил права:

На экране должно появиться:

Query OK, 0 rows affected (0.01 sec)

Теперь, когда база данных test_company и пользователь test_user готовы, мы можем перейти к созданию таблицы. Предположим, нам нужна таблица products для хранения списка товаров. Позже мы попробуем вставить и извлечь данные из этой таблицы, чтобы понять, как работает BLOB в MySQL.

Выйдите из оболочки MySQL:

Затем снова войдите в систему, на этот раз – как пользователь test_user:

mysql -u test_user -p

При появлении запроса введите пароль test_user и нажмите Enter, чтобы продолжить. Затем откройте базу данных test_company, набрав команду:

Перейдя в базу данных test_company, MySQL отобразит такой результат:

Затем создайте таблицу products:

CREATE TABLE `products` (product_id BIGINT PRIMARY KEY AUTO_INCREMENT, product_name VARCHAR(50), price DOUBLE, product_image BLOB) ENGINE = InnoDB;

Эта команда создаст таблицу по имени products. В таблице будет четыре столбца:

  • product_id: в этом столбце используется тип данных BIGINT, он позволяет вместить большой список продуктов, содержащий 2⁶³-1 элементов. Мы пометили столбец как PRIMARY KEY, чтобы присвоить товарам уникальные идентификаторы. Чтобы MySQL мог обрабатывать создание новых идентификаторов, мы использовали ключевое слово AUTO_INCREMENT.
  • product_name: этот столбец содержит названия товаров. Здесь мы использовали тип данных VARCHAR, так как это поле обычно обрабатывает буквенно-цифровые значения длиной до 50 символов; ограничение в 50 символов – это всего лишь гипотетическое значение, используемое для целей этого руководства.
  • price: этот столбец содержит розничные цены наших товаров. Поскольку цена на некоторые товары может выражаться числом с плавающей точкой (например, 23.69, 45.36, 102.99), мы указали здесь тип данных DOUBLE.
  • product_image: в этом столбце мы указали тип данных BLOB, поскольку он предназначен для хранения двоичных данных – изображений товаров.

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

Query OK, 0 rows affected (0.03 sec)

Выйдите из сервера MySQL:

Вы получите сообщение:

Таблица products готова. Вы можете использовать ее для хранения некоторых записей, включая изображения продуктов. Скоро мы заполним ее данными.

2: Создание PHP-скрипта для заполнения базы данных

На этом этапе мы создадим сценарий PHP, который будет подключаться к базе данных MySQL, созданной в первом разделе руководства. Сценарий подготовит три записи о товарах и вставит их в таблицу products.

Чтобы создать PHP-скрипт, откройте новый файл в текстовом редакторе:

sudo nano /var/www/html/config.php

Затем вставьте в него следующую информацию (замените PASSWORD паролем test_user, который вы создали в разделе 1):

$pdo = new PDO(«mysql:host=» . DB_HOST . «; dbname https://i.imgur.com/VEIKbp0.png»)

‘product_name’ => ‘MANAGED KUBERNETES’,

‘product_name’ => ‘MySQL DATABASES’,

$sql = «INSERT INTO products(product_name, price, product_image) VALUES (:product_name, :price, :product_image)»;

foreach ($products as $product)

echo «Records inserted successfully»;

Сохраните и закройте файл.

Этот файл нужен для определения переменных базы данных и подключения к ней. Файл также инициирует объект PDO и сохраняет его в переменной $pdo. Мы ссылаемся на файл config.php вверху.

Затем мы создали массив данных о товарах, которые нужно вставить в БД. Помимо product_name и price, которые заданы в виде строк и числовых значений соответственно, сценарий использует встроенную функцию PHP file_get_contents для чтения изображений из внешнего источника и передачи их в виде строк в столбец product_image.

После этого мы подготовили оператор SQL и использовали оператор PHP foreach для вставки каждого продукта в базу данных.

Запустите /var/www/html/insert_products.php в окне браузера, используя следующий URL-адрес (не забудьте заменить your-server-IP внешним IP-адресом сервера):

На экране вы увидите сообщение об успешном выполнении файла – следовательно, записи были вставлены в базу данных.

Records inserted successfully

Итак, мы успешно вставили три записи, содержащие изображения товаров, в таблицу. На следующем этапе мы напишем сценарий PHP для извлечения этих записей и отображения их в браузере.

3: Извлечение и визуализация данных из БД MySQL

Имея ​в базе данных информацию и изображения товаров, вы можете написать второй сценарий PHP, который будет запрашивать и отображать данные в таблице HTML в браузере.

Чтобы создать файл, введите:

sudo nano /var/www/html/display_products.php

Затем вставьте в файл следующее:

Using BLOB and MySQL

$sql = «SELECT * FROM products»;

Как правильно хранить изображения — в файлах или в базе данных MySQL?

На сайте планируется очень большое количество качественных изображений.
Около 2-х тысяч.
Я знаю, что изображения можно хранить в виде файлов на диске (привычный ранее способ) а также, при использовании CMS, в базе этой CMS, например MySQL.

Средний размер каждого файла порядка 3-х мегабайт.

Вопрос в том, какой способ выбрать.
Цели 2:
1. Ускорить работу сайта.
2. Хоть немного усложнить «работу» сайтопи$дам-вэбмастерам.

Если есть альтернатива, прошу. (Сайт планируется строить на Друпал 6.9)

  • Блог
  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии

Комментарии

olk 17 февраля 2009 в 0:08

Второй пункт не понял (как можно усложнить работу «сайтопи$дам-вэбмастерам», когда имидж в конечном счете будет на экране ?):) но с точки зрения производительности — однозначно в файловой системе (особено файлы такого размера)

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Однозначно рисунки выгоднее хранить в файловой системе. БД является узким местом каждого вебсайта.
По поводу защиты от сайтопиз. в. Существует возможность запретить доступ к рисункам не с вашего сайта с помощью .htaccess. Подробнее про это рассказать не могу — встречал недавно, но не могу вспомнить где именно.
Интересно ваше мнение.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Значит, файловая система.
Просто сейчас так много программ для копирования содержимого сайтов..
Придётся, видно, гадить копирайтом на каждой фотографии. Всё равно «выкачают».
А у нас не хватает ума как защитить файлы на сервере от тупого «выкачивания».
Спасибо, будем учиться. Это никогда не поздно

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Ветер 17 февраля 2009 в 2:05

Если будешь хранить в базе данных, то тебя хостер застрелит через пару секунд.

Разумное решение гадить копирайтом только если доступ к картинке пришел из вне.
А так как обычно боты скачивают, то запретить этим ботам доступ на сайт.

Тут вопрос в другом, для каких целей пользователь скачал картинки с сайта.
Для себя или для коммерческого использования.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Camor 17 февраля 2009 в 9:41

Можно конечно заморочиться и настроить elite xml website на вывод картинок друпала, но это достаточно сложно и не для всех сайтов потянет, хотя возможностей будет куча. Защиту от того, что бы не тоскали картинки можно сделать на уровне сервера или просто ставить watermark на картинки, что тоже полезно. Ещё есть способ, прописать в .htaccess защиту основанную на user-agent этих программ.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

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

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

«_FeliX_» wrote:
Мое личное субъективное мнение.

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

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

«Camor» wrote:

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

В полне возможно
Всеже правильность определяется задачей. Простым является стандартный способ хранения файлов. А для некоторых задач более подходят базы данных.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

От воровства контента не защититься никак.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Безусловно только в файловой системе.
От воровства контента защитится не так уж трудно.
Вот идеи:
1. В каталог с файлами ставится .htaccess запрещающий прямой доступ к файлам по HTTP
2. Картинки отдаются только через PHP-скрипты
3. В скрипты встроить защиту с лимитом скачиваний за минуту/час/день (кому как нравится) с конкретного IP.
4. Если не очень затратно по ресурсам, то можно этими же скриптами прилеплять к картинкам watermark с URL-сайта.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

От непосредственного скачивания имиджов защитится можно, но
глобальной защиты все таки не получится, я не зря написал (в первом комменте), что елси имидж уже на экране вашего компьютера, то он уже есть в кэше вашего браузера, а значит защитить его нельзя
а если вы не выдаете имидж на экран броузера, то зачем его держать на сервере .
Защита в виде watermark-ов — ну в принципе можно но особого смысла не вижу .
Единственная защита — юридическая, искать тех кто в обход ваших копирайтов использует ваш контент и предьявлять им претензии

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Всё зависит ещё от целей защиты!
Например у человека галерея в миллион картинок (ну пусть нескольких тысяч). Браузером такую галерею не вытянуть и за год! А вот роботом (если никакой защиты не стоит) это сделать можно быстро!
Опять же наличие watermark гарантирует, что не будет проблем с доказательством авторских прав на данное изображение, если например картинка выкладывается с правами «только смотреть», но с запретом на распространение, а недобросовестные пользователи на этот запрет плюют.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

1)От робота не защититься никак.
2)делать частотомерку для ip и куда её класть? посещаемый ресурс вполне себе может леч полежать. При этом — роботу вобще говоря спешить некуда — будет тянуть одну картинку в 3-4 секунды — и всё. за несколько суток стянется всё что угодно

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

1. С чего вы взяли? Помоему я уже написал как можно защитится
2. Частотомерку можно класть в БД (например MySQL). Посещаемый ресурс никуда лечь и полежать не ляжет. Тут всего-то надо при вызове страницы, выполнить два запроса: SELECT и UPDATE. Тот же Drupal выполняет десятки запросов к БД при вызове практически любой страницы и ещё никуда не лёг. Да, роботу спешить некуда, но после скажем 100 скачиваний в течении часа, ему придётся отдохнуть сутки. Вот и посчитайте сколько у такого робота займёт скачивание хотя бы 10 000 картинок. Таким образом ваши «несколько суток» превращаются в 100 дней. А если поумничать и ввести дополнительную обработку (скажем если двое суток подряд по 100 картинок, то в бан на неделю), то вообще период скачивания может растянуться на годы

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Спасибо всем давшим консультацию!
Файлы.. только файлы .. > база.. только база..
Значит, выбираем файлы.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Да простят меня коллеги, но файлы нужно хранить в БД, НО при этом копию в файловой системе.
Т.е. при обращении к файлу смотрится его наличие в файловой системе, если нет — создаем из БД копию в файловой системе, и при последующих обращениях уже в БД не лезем.
Но Drupal так не делает.

Зачем?
Файлы в внутри нод — это часть контента, хранение контента должно быть единообразно.

При переносе сайта достаточно просто перенести БД.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Ветер 2 апреля 2013 в 14:26

и получить охрененную нагрузку на базу.

  • Войдите или зарегистрируйтесь, чтобы отправлять комментарии
  • Реакции

Вложение файлов и изображений в записи базы данных

Функция вложения используется в Access для добавления одного или нескольких файлов (документов, презентаций, изображений и т. д.) в записи базы данных. В этой статье содержатся общие сведения и действия, необходимые для настройки базы данных для использования вложений, а также для присоединения данных и управления ими.

В этой статье

  • Применение вложений
  • Добавление поля вложения в таблицу
  • Непосредственное вложение файлов в таблицы
  • Использование вложений с формами и отчетами
  • Сохранение вложенных файлов в другом месте
  • Удаление вложенных файлов
  • Использование вложений без применения мыши или другого указывающего устройства
  • Справочные сведения о вложениях

Применение вложений

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

Вложения также позволяют хранить данные более рационально. В более ранних версиях Access для хранения изображений и документов использовалась технология связывания объектов и внедрения (OLE). По умолчанию с помощью технологии OLE создавался растровый эквивалент изображения или документа. Такие растровые файлы могут быть слишком большими — иногда в 10 раз больше исходного файла. При просмотре изображения или документа из базы данных с помощью технологии OLE отображалось растровое изображение, а не исходный файл. С помощью вложений вы открываете документы и другие файлы, не относящиеся к изображениям, в родительских программах, поэтому в Access можно выполнять поиск и изменение этих файлов.

Кроме того, технология OLE требует использования программ, называемых OLE-серверами. Например, если файлы изображений JPEG хранятся в базе данных Access, для каждого компьютера, на котором выполняется эта база данных, требуется другая программа, зарегистрированная как OLE-сервер для изображений JPEG. Напротив, в Access вложенные файлы сохраняются в исходных форматах без каких-либо вспомогательных изображений, а для просмотра изображений из базы данных не требуется дополнительное программное обеспечение.

Вложения и правила разработки баз данных

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

Сведения о просмотре других системных таблиц см. в статье Использование области навигации. Дополнительные сведения о разработке баз данных см. в статье Основные сведения о создании баз данных.

Способы использования вложенных файлов

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

  • Вкладывать файлы можно только в базы данных, созданные в Access и использующие формат файла ACCDB. Нельзя осуществлять обмен вложениями между базами данных Access (ACCDB) и базами в формате более ранней версии (MDB).
  • Необходимо создать поле в таблице и задать для него тип данных «Вложение». Изменить тип данных после того, как для него задано значение «Вложение», невозможно.
  • В одной записи возможно хранение нескольких файлов. Например, можно хранить изображения и файлы, созданные с помощью программ обработки текстов и электронных таблиц.
  • Вы можете присоединить не более двух гигабайт данных (максимальный размер базы данных Access ). Размер отдельных файлов не может превышать 256 мегабайт.
  • Для добавления и изменения вложений, а также для управления ими служит диалоговое окно Вложения. Это диалоговое окно можно открыть двойным щелчком из поля вложения в таблице. Если требуется управлять вложениями из формы или просматривать их из отчета, в форму или отчет следует добавить элемент управления вложения и связать этот элемент с нужным полем вложения в таблице.
  • По умолчанию элемент управления вложением обрабатывает изображения и выводит значки программ, соответствующие типам других файлов. Предположим, что в запись вложены фотография, резюме и документ Visio. При переходе от одного вложения к другому элемент управления выводит изображение и отображает значки программ для документов Word и Visio.
  • Если открыть диалоговое окно Вложения из таблицы или формы, файлы вложений можно добавлять, удалять, изменять или сохранять. Если открыть диалоговое окно Вложения из отчета, можно только сохранять вложенные файлы в другом месте.
  • Файлы вложения будут сжаты приложением Access, если они не были сжаты изначально. Например, JPEG-файлы сжимаются графической программой, которая их создает, поэтому программа Access их не сжимает.
  • Если программа, которая использовалась для создания вложенного файла, установлена на компьютере, вложенные файлы можно открывать и изменять с помощью этой программы.
  • Вложенные файлы можно сохранить на жестком диске или в сети. Тогда после внесения изменений во вложения можно проверить полученный результат, а уже затем сохранить их в базе данных.
  • Управлять вложениями можно программным путем.

В следующих разделах приведены инструкции по добавлению вложений и управлению ими.

Добавление поля вложения в таблицу

Чтобы использовать вложения в Access, необходимо сначала добавить поле вложения по крайней мере в одну из таблиц в базе данных. Access предоставляет два способа добавления поля вложения в таблицу. Поле можно добавить в режиме таблицы или в режиме конструктора. В этом разделе описано, как использовать оба метода.

Добавление поля вложения в режиме таблицы

  1. В таблице, открытой в режиме таблицы, щелкните первый доступный пустой столбец. Заголовок такого столбца содержит надпись Щелкните для добавления.
  2. На вкладке Поля таблицы в группе Форматирование щелкните стрелку вниз рядом с полем Тип данных, а затем щелкните Вложение. Access задает тип данных для поля значение Вложение и помещает значок в строку заголовка поля. На приведенном ниже рисунке показано новое поле вложения. Следует обратить внимание на значок скрепки в строке заголовков поля. По умолчанию в строку заголовка поля вложения нельзя вводить текст.

Добавление поля вложения в режиме конструктора

  1. В области навигации щелкните правой кнопкой мыши таблицу, которую требуется изменить, и выберите в контекстном меню пункт Конструктор

Непосредственное вложение файлов в таблицы

После того как в таблицу добавлено поле вложения, можно вкладывать файлы в записи этой таблицы, не создавая форму для ввода данных. Кроме того, можно просматривать вложения без помощи формы, однако помните, что для просмотра непосредственно из таблиц используются программы, в которых создавались эти файлы, или программы, поддерживающие файлы такого типа. Например, если открыть документ Word, присоединенный к таблице, Word также запускается, и вы просматриваете документ из Word, а не Access. Если приложение Word не установлено на компьютере, появится диалоговое окно с предложением выбрать программу для просмотра файла.

Добавление вложения в таблицу

Диалоговое окно

  1. В таблице, которая содержит поле вложения и открыта в режиме таблицы, дважды щелкните поле вложения. Откроется диалоговое окно Вложения. Оно показано на рисунке ниже.

Открытие вложенных файлов из таблицы

  1. В таблице, открытой в режиме таблицы, дважды щелкните ячейку в поле вложения.
  2. В диалоговом окне Вложения дважды щелкните файл, который требуется открыть. -или- Выберите файл и нажмите кнопку Открыть. Файл будет открыт в связанной с ним программе — файлы Excel открываются в программе Excel и т. д. Некоторые файлы изображений можно открывать с помощью средства просмотра рисунков Windows. Если требуется не только просмотреть изображение, можно щелкнуть его правой кнопкой мыши и выбрать команду Изменить. При этом запустится программа, с помощью которой был создан данный файл, если она установлена на компьютере.

Сохранение изменений во вложенном файле

Сообщение с подтверждением сохранения вложения с кнопками

  1. Если файл требуется изменить, воспользуйтесь программой, с помощью которой этот файл был создан.
  2. Сохраните внесенные в файл изменения и завершите работу программы. Помните, что при изменении вложенного файла все изменения сохраняются на жестком диске в папке временных файлов Интернета. Дополнительные сведения об этой папке см. в конце данного раздела.
  3. Чтобы сохранить изменения без возможности восстановления, вернитесь к Access и в диалоговом окне Вложения нажмите кнопку ОК. Появится сообщение, подобное указанному ниже.

Примечание: При открытии вложенного файла в родительской программе для просмотра или редактирования Access помещает временную копию файла во временную папку. Если вы измените файл и сохраните изменения в родительской программе, Access сохранит изменения во временной копии. Когда вы вернеесь к Access и нажмите кнопку ОК , чтобы закрыть диалоговое окно Вложения , Access предложит сохранить вложенный файл еще раз. Нажмите кнопку Да, чтобы записать измененный файл в базу данных, или кнопку Нет, чтобы оставить файл в базе данных без изменений.

Использование вложений с формами и отчетами

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

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

Добавление элемента управления вложения в форму или отчет

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

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

  • Создание таблицы и добавление полей
  • Создание формы с помощью инструмента «Форма»
  • Создание простого отчета
Добавление элемента управления вложения
  1. В области переходов щелкните правой кнопкой мыши форму или отчет, которые требуется изменить, и выберите в контекстном меню команду Конструктор.
  2. На вкладке Конструктор в группе Сервис выберите пункт Добавить существующие поля. Появится область Список полей, в которой перечислены поля таблицы, являющиеся источником данных для формы или отчета. Поле вложения в списке отмечено значком развертывания (можно щелкнуть рядом с этим полем знак «плюс» или «минус»). На приведенном ниже рисунке показано, как выглядит поле вложения в области Список полей

Управление вложениями с помощью формы

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

Примечание: Создавший форму пользователь может предназначить ее только для чтения. В этом случае диалоговое окно Вложения можно будет использовать только для сохранения вложенных файлов на жестком диске или в сети.

Вложение файла
  1. Откройте форму, в которой отображаются вложения, и найдите запись, в которую требуется вложить файл.
  2. Выберите элемент управления вложением — элемент управления, привязанный к полю «Вложение». Откроется мини-панель инструментов:

Примечание: Если элемент управления вложением добавлен в раздел таблицы разделенной формы, мини-панель инструментов не откроется. Дополнительные сведения о разделенных формах см. в статье Создание разделенной формы.

Перемещение по вложенным файлам с помощью прокрутки

Примечание: Действия, описанные в данном разделе, применимы к формам и отчетам.

  1. Откройте форму или отчет, где отображаются вложения.
  2. Перейдите к записи, содержащей вложенные файлы.
  3. Щелкните элемент управления «Изображение», отображающий вложенные файлы. Откроется мини-панель инструментов.
  4. Для прокрутки вложенных файлов щелкайте стрелку Назад (влево) или Вперед (вправо). Чтобы увидеть имена файлов, нажмите кнопку Просмотреть вложения, с помощью которой открывается диалоговое окно Вложения. Имена вложенных файлов будут показаны в списке Вложения .

Сохранение вложенных файлов в другом месте

Действия, описанные в данном разделе, применимы к таблицам, формам и отчетам. Любой из файлов или все файлы, вложенные в данную запись, можно сохранить на жестком диске или в сети. Следует помнить, что при выборе сохранения всех файлов невозможно сохранить отдельные файлы — можно лишь сохранить их все. Для выборочного сохранения файлов следует сохранять их по одному.

  • Откройте сначала таблицу, форму или отчет, где содержатся вложения, а затем — диалоговое окно Вложения.

Открытие диалогового окна Вложения из таблицы

  • Откройте таблицу в режиме таблицы и дважды щелкните поле, где содержится вложение, которое требуется сохранить.

Открытие диалогового окна Вложения из формы или отчета

  1. Откройте форму или отчет, где отображаются вложения.
  2. Перейдите к записи, содержащей вложенные файлы.
  3. Щелкните элемент управления «Изображение», отображающий вложенные файлы. Откроется мини-панель инструментов.
  4. Нажмите кнопку Просмотреть вложения.

Сохранение отдельного вложения

  1. В диалоговом окне Вложения нажмите кнопку Сохранить как. Откроется диалоговое окно Сохранение вложения.
  2. Воспользуйтесь списком Папки, чтобы перейти к новому расположению файла, и нажмите кнопку Сохранить.

Сохранение всех вложений

  1. В диалоговом окне Вложения нажмите кнопку Сохранить все. Откроется диалоговое окно Сохранение вложений.
  2. Воспользуйтесь списком Папки, чтобы перейти к новому расположению файлов, и нажмите кнопку Сохранить.

Удаление вложенных файлов

Действия, описанные в данном разделе, применимы к таблицам и формам.

Удаление вложения

  1. Дважды щелкните поле вложения в таблице, чтобы открыть диалоговое окно Вложения. -или- В форме (в режиме просмотра макета или в режиме формы) перейдите к записи, которая содержит подлежащее удалению вложение, и на мини-панели инструментов нажмите кнопку Просмотреть вложения, чтобы открыть диалоговое окно.
  2. В диалоговом окне Вложения выберите файл, который требуется удалить, и нажмите кнопку Удалить.

Использование вложений без применения мыши или другого указывающего устройства

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

Открытие таблицы, формы или отчета из области навигации

  1. Нажмите клавишу F11.

Примечание: Если область навигации закрыта, при нажатии клавиши F11 она откроется, и фокус будет установлен в этой области. Если область навигации открыта, при нажатии клавиши F11 она закроется. Чтобы открыть область навигации и переместить на нее фокус, необходимо снова нажать клавишу F11.

Просмотр вложений из таблиц

  1. Для перемещения курсора в нужное поле вложения можно использовать клавиши со стрелками.
  2. Нажмите клавишу ПРОБЕЛ. Откроется диалоговое окно Вложения.
  3. Для перехода между кнопками в диалоговом окне или от кнопок к списку вложенных файлов Вложения воспользуйтесь клавишей TAB.

Примечание: Записи могут содержать несколько вложений. Если требуется выбрать вложение в списке из нескольких файлов, перейдите к списку файлов при помощи клавиши TAB, а затем выберите нужный файл при помощи клавиш со стрелками. После этого, нажимая клавишу TAB, вернитесь к кнопкам и выберите нужное действие.

Перемещение между вложениями с помощью прокрутки из формы или отчета

Эти действия возможны, только если у вас есть клавиатура Microsoft Natural, и запись содержит несколько вложений.

  1. При необходимости переместите фокус на элемент управления вложения с помощью клавиши TAB. По умолчанию Access выделяет элемент управления и метку, связанную с элементом управления, если метка существует.
  2. Нажмите клавишу приложения. Откроется контекстное меню.
  3. Выберите Вперед или Назад с помощью клавиши TAB или клавиш со стрелками, а затем нажмите клавишу ВВОД.
  4. При необходимости повторите шаг 2, чтобы перейти к следующему вложенному файлу.

Открытие диалогового окна «Вложения» из формы или отчета

Эти действия возможны только при наличии клавиатуры Microsoft Natural.

  1. При необходимости переместите фокус на элемент управления вложения с помощью клавиши TAB. По умолчанию Access выделяет элемент управления и метку, связанную с элементом управления, если метка существует.
  2. Нажмите клавишу приложения. Откроется контекстное меню.
  3. Выберите пункт Просмотреть вложения с помощью клавиши TAB или клавиш со стрелками, а затем нажмите клавишу ВВОД. Откроется диалоговое окно Вложения.
  4. Нажимайте клавишу TAB для перехода между кнопками в диалоговом окне или от кнопок к списку вложенных файлов Вложения (изменение — двойной щелчок). Записи могут содержать несколько вложений. Если требуется выбрать вложение в списке из нескольких файлов, перейдите к списку файлов при помощи клавиши TAB, а затем выберите нужный файл при помощи клавиш со стрелками. После этого, нажимая клавишу TAB, вернитесь к кнопкам и выберите нужное действие.
  5. Выбрав нужные файл и кнопку, нажмите клавишу ВВОД.
  6. По завершении выберите кнопку ОК с помощью клавиши TAB или клавиш со стрелками, а затем нажмите клавишу ВВОД.

Справочные сведения о вложениях

Ниже представлены справочные сведения о вложениях, в том числе поддерживаемые форматы файлов изображений и документов, соглашения об именах файлов и некоторые данные о вложении файлов в записи путем программирования.

Поддерживаемые форматы файлов изображений

В Access непосредственно поддерживаются (т. е. отображаются с помощью элемента управления вложением без использования дополнительного программного обеспечения) следующие форматы графических файлов:

BMP (точечный рисунок Windows)

ICON, ICO (значок)

WMF (метафайл Windows)

EMF (расширенный метафайл)

Поддерживаемые форматы документов и других файлов

Как правило, в качестве вложений можно использовать файлы, созданные в любых программах Microsoft Office. Кроме того, можно вкладывать файлы журнала (LOG), текстовые файлы (TEXT, TXT) и сжатые ZIP-файлы.

Соглашения об именах файлов

Имена вложенных файлов могут содержать любые символы Юникода, поддерживаемые файловой системой NTFS, используемой в Microsoft Windows. Кроме того, имена файлов должны соответствовать следующим правилам.

  • Длина имен не должна превышать 255 знаков, включая расширение имени файла.
  • Имена не должны содержать следующих знаков: вопросительного знака (?), кавычек («), левой или правой косой черты (/ \), угловых скобок (< >), звездочки (*), вертикальной черты (|), двоеточия (:), знака абзаца (¶).

Типы файлов, которые Access сжатия

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

Расширение файла

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *