При работе с 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.
Вы можете перейти в конец страницы и оставить ваш комментарий.
Мало букафф? Читайте есчо !
Сентябрь 19, 2023 г.
Если вы используете глобальную установку drush, то вероятно забыли выполнить инициализацию проекта.
Drush управляется composer-ом, и после клонирования репозитория на локальный сервер требуется выполнить в корне drush:
[crayon-6ad12928a8428589391473/]
Читать
Сентябрь 6, 2023 г.
Пример кода, реализующий endpoint скачиваемого файла.
[crayon-6ad12928a8563700576222/]
Кроме контроллера, вам потребуется еще задать маршрут. Пример описания маршрута:
[crayon-6ad12928a856a604952300/]
Читать
Октябрь 3, 2021 г.
В шаблонах twig вы можете использовать функцию link, для рендера ссылки.
Параметры вызова следующие - link($text, $uri, $attributes = {}), первые два - обязательные.
[crayon-6ad12928a8663703835399/]
Результатом будет следующий HTML код:
...
Читать
Октябрь 28, 2014 г.
У меня эта ошибка всплыла для поля с автозаполнением, когда список значений генерировался из PHP кода. Занималась генерацией списка значений вот такая функция:
[crayon-6ad12928a8819440607640/]
Грабли обнаружились в случаях, когда поле title содержал ...
Читать