Elfinder нужно получить хеш файла в переполнении стека

Я делаю некоторую пользовательскую работу над плагином elfinder и хочу получить хеш файла на основе имени файла или пути к файлу.
В своем PHP-файле коннектора я использую обратный вызов accessControl для пользовательской функции, которая создается следующим образом: function access($attr, $path, $data, $volume) {, Могу ли я использовать $path переменная этой функции, чтобы получить хеш-строку файла?
Я знаю, что у elfinder есть собственный способ получения хеша файла, я вижу, что могу получить file.hash на JavaScript довольно легко, но мне нужно получить доступ к нему в PHP на основе пути к файлу / папке. Есть ли функция PHP, которую я могу вызвать отсюда, чтобы получить хеш файла?

Какие-нибудь мысли?

Спасибо!

РЕДАКТИРОВАТЬ: Вот некоторая информация из документов Elfinder в https://github.com/Studio-42/elFinder/wiki/Client-Server-API-2.0 :

Новый 2.x PHP коннектор использует следующий алгоритм для создания хеша из
Путь файла:

remove root path from file path
encrypt resulting path so it could be later decrypted (not implemented yet, but stub is present)
encode already encrypted path using base64 with replacement +/= -> -_.
remove trailing dots
add prefix - unique volume id (must start with [a-z])
resulting string must be valid HTML id attribute (that is why base64 is used).

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

hash must be valid for storage in the id attribute of an HTML tag
hash must be reversible by connector

0

Решение

Хорошо ли это даже elFinder 2.1? elFinder 2.1.3+ будет иметь $volume->getHash($path, $name),

Пожалуйста, попробуйте ночные сборки. — https://github.com/Studio-42/elFinder/archive/2.1-src.zip

1

Другие решения

Если $ path — это полный путь к файлу, вы должны сделать что-то вроде этого:

md5(file_get_contents($path))

или же

hash('sha256', file_get_contents($path))

В PHP хеш-функции принимают файл как строку, поэтому вы используете file_get_contents, чтобы получить файл как строку.

0

По вопросам рекламы [email protected]