При работе с private файлами в Drupal, можно использовать зацепку hook_file_download($uri), в которой вы можете реализовать проверку прав доступа к скачиваемому файлу. Но на входе функции — только uri, вместо fid, по которому было бы удобно вытащить всю информацию о файле.
В общем то понятно, что по uri можно вытащить данные из таблицы file_managed. Через апи этот запрос можно сформировать функцией file_load_multiple().
|
|
function HOOK_file_download($uri) { $files = file_load_multiple(array(), array('uri' => $uri)); // После анализа данных, полученных о файле, // нужно вернуть content-type файла или -1, // если доступ к файлу запрещен ... $access_enabled = true; if ($access_enabled) { return array('Content-Type' => file_get_mimetype($uri)); } else { // Access to the file is denied. return -1; } } |
Данная запись опубликована в 07.11.2017 13:19 и размещена в рубрике Drupal.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Август 3, 2021 г.
Смотрим как выполнить рендеринг файла-картинки в Drupal 9 программно.
Есть FID, и требуется рендерить этот файл программно в шаблоне <IMG>. Для этого нам понадобится воспользоваться сервисом ядра - renderer.
[crayon-6a0e25e52e7aa426020670/] ...
Читать
Май 8, 2021 г.
Конечно можно скачать/установить Drupal в ручную, это очень просто и не требует "лишних" инструментов. Но composer не просто так кушает свой хлеб. Его ...
Читать
Июль 17, 2023 г.
Данный подход скорее полезен как демонстрация инструментария, чем действительно реализация редиректа на основной домен. Потому что лучше это делать средствами сервера, а не ПО, чтобы уменьшить нагрузку на сервер.
Drupal 8 работает на базе симфонии, ...
Читать
Апрель 12, 2025 г.
Еще один oembed провайдер, который мне понадобился не давно - VK VIDEO. Нужно было интегрировать видео с ВКонтакте в медиа библиотеку Drupal.
Если ...
Читать