НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
120 of 152 menu

Таблица oc_upload

Таблица oc_upload служит для хранения записей о файлах, которые были загружены через стандартный файловый менеджер OpenCart. Эти файлы часто связаны с заказами, где покупателю необходимо предоставить дополнительные данные (например, индивидуальный дизайн для печати, документы и т.д.).

Поля

Поле Тип данных Описание
upload_id int Уникальный идентификатор (первичный ключ) для каждой загрузки. Автоматически инкрементируется.
name varchar(255) Оригинальное имя файла, которое было у него на компьютере пользователя в момент загрузки.
filename varchar(255) Уникальное имя файла, сгенерированное системой OpenCart для сохранения на сервере. Это имя гарантирует, что файлы не перезапишут друг друга.
code varchar(255) Уникальный код (маска), который используется для формирования пути к файлу на сервере. Путь строится по принципу: {код[0]}/{код[1]}/filename. Это помогает избежать проблем с большим количеством файлов в одной директории.
date_added datetime Дата и время загрузки файла на сервер.

Как это работает

Когда пользователь на странице оформления заказа или в личном кабинете загружает файл через элемент формы типа "file", скрипт OpenCart обрабатывает его.

Система генерирует уникальное имя для сохранения файла на диске (filename) и создает специальный код (code) для распределения файлов по подпапкам. Например, код a1b2c3d4 превратится в путь a/1/a1b2c3d4.

Информация о загруженном файле сохраняется в таблицу oc_upload. upload_id этой записи затем связывается с заказом. Это происходит через таблицу oc_order_option, где в поле value хранится именно этот ID, а не прямое имя файла.

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

Пример SQL-запроса

Выбрать все файлы, загруженные за последнюю неделю:

SELECT * FROM oc_upload WHERE date_added >= DATE_SUB(NOW(), INTERVAL 7 DAY) ORDER BY date_added DESC;

Найти все заказы, в которых был загружен конкретный файл:

SELECT o.order_id, oo.order_option_id, u.name as original_filename FROM oc_upload u JOIN oc_order_option oo ON (oo.value = u.upload_id) JOIN oc_order o ON (oo.order_id = o.order_id) WHERE u.upload_id = 123;

Смотрите также

  • таблицу oc_order_option,
    которая связывает загруженные файлы с опциями в заказе
  • таблицу oc_order,
    которая хранит основную информацию о заказах
  • таблицу oc_option,
    в которой настраиваются опции товара, включая тип "Файл"
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить