Глава 8: Раздаем файлы и медиа

8.1 Простое скачивание: делаем красивую кнопку для PDF

Часто на сайтах нужно выложить документы: прайс-листы, инструкции, регламенты. Давай сделаем это профессионально, а не просто голой ссылкой.

Шаг 1: Подготовь файл и папку.

  1. Убедись, что у тебя есть папка /var/www/html/docs/. Если нет — создай: sudo mkdir /var/www/html/docs.

  2. Подготовь PDF-файл на своём основном компьютере. Например, price_list.pdf.

  3. Скопируй его на сервер в папку docs/:

    # Через scp или общую папку, например:
    sudo cp /tmp/price_list.pdf /var/www/html/docs/
  4. Проверь права доступа (файл должен быть читаемым для всех):

    sudo chmod 644 /var/www/html/docs/price_list.pdf

Шаг 2: Создаём красивый блок для скачивания. Откроем страницу, где хотим разместить кнопку (например, index.html или отдельную страницу price.html):

sudo nano /var/www/html/index.html

Найди подходящее место (например, после галереи) и вставь такой HTML-код:

<section class="downloads">
    <div class="container">
        <h2>Документы для скачивания</h2>
        <p>Здесь вы можете ознакомиться с нашими официальными документами.</p>
        
        <div class="download-card">
            <div class="download-icon">
                <i class="fas fa-file-pdf fa-3x"></i> <!-- Иконка PDF -->
            </div>
            <div class="download-info">
                <h3>Актуальный прайс-лист</h3>
                <p>Полный перечень изделий и услуг с ценами. Обновлён 15.10.2023</p>
                <p class="file-info">PDF, 1.2 МБ</p>
            </div>
            <div class="download-action">
                <a href="/docs/price_list.pdf" class="btn-download" download>
                    <i class="fas fa-download"></i> Скачать
                </a>
                <a href="/docs/price_list.pdf" target="_blank" class="btn-preview">
                    <i class="fas fa-eye"></i> Посмотреть
                </a>
            </div>
        </div>
        
        <!-- Можно добавить ещё карточки -->
    </div>
</section>

Шаг 3: Добавляем стили в style.css. Открой файл стилей и добавь в конец:

Шаг 4: Проверяем результат. Обнови главную страницу в браузере. Теперь у тебя есть красивый блок с кнопками:

  • "Скачать" — файл сразу начнёт загружаться на компьютер пользователя (атрибут download).

  • "Посмотреть" — файл откроется в новой вкладке браузера (атрибут target="_blank").

8.2 Создаем архив фотографий для скачивания

Представь, что клиент хочет скачать все фотографии проекта одним архивом. Давай сделаем это.

Шаг 1: Создаём архив на сервере.

Шаг 2: Добавляем карточку для скачивания архива. В тот же HTML-код, что и для PDF, добавь ещё одну карточку:

Важный момент: Для больших файлов хорошо бы показывать размер и тип файла, как мы это сделали в file-info.

8.3 Организуем библиотеку документов с понятной структурой

Когда файлов становится много, нужна система. Давай создадим целую страницу-библиотеку.

Шаг 1: Создаём страницу docs.html.

Шаг 2: Меняем содержимое. Оставь шапку и подвал, а в основном контенте сделай:

Шаг 3: Добавляем стили для библиотеки.

Шаг 4: Добавляем ссылку в главное меню. Обнови навигацию на всех страницах, добавив: <a href="/docs.html">Документы</a>.

8.4 Бонус: Автоматическое определение размера файла

Ручное прописывание размера файла неудобно. Можно сделать скрипт на PHP, но это тема отдельной книги. А вот простой bash-скрипт для автоматического обновления страницы можно создать.

Создай файл update_file_sizes.sh в домашней папке:

Затем сделай его исполняемым и запускай после добавления каждого нового файла: sudo bash update_file_sizes.sh. А в HTML можно будет подтягивать данные из этого JSON с помощью JavaScript.


Практическое задание к главе 8:

  1. Создай раздел "Медиатека": На отдельной странице media.html организуй разделы: "Фотогалерея (скачать архив)", "Видео проекта", "3D-модели". Для каждого раздела сделай по 1-2 примера файлов.

  2. Добавь иконки для разных типов файлов: В CSS добавь классы для иконок разных форматов: .pdf-icon { color: #d32f2f; }, .zip-icon { color: #2196f3; }, .doc-icon { color: #2e7d32; }. Используй их в карточках.

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

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

  1. Красивые, кликабельные элементы для скачивания.

  2. Логичную структуру хранения документов.

  3. Информативные блоки с метаданными (размер, тип файла).

  4. Целую библиотеку документов с категориями.

Это уровень уже вполне профессионального сайта-визитки или сайта небольшой компании.

Последнее обновление