Получить информацию о версии для загрузки файла в HTML

Наш веб-сайт содержит ссылку, по которой клиенты могут загрузить последние файлы update.exe. Мы бы хотели, чтобы на веб-странице автоматически отображалась информация о версии файла каждого файла исправления. Файлы представляют собой исполняемые файлы Windows с цифровой подписью.

Есть ли способ получить и отобразить информацию о версии из файлов, используя HTML5 или javascript без необходимости нажатия пользователем кнопки? По сути, мы хотим, чтобы версии файлов обновлялись при загрузке или обновлении страницы. Вот что мы имеем сейчас. Я хотел бы добавить "Версия 1.2.3.4" после того, как там написано "Продукт" в каждой строке.

<ul class="links">
    <li>Latest Patches:</li>
    <li><a href="updateFoo.exe">Update for Foo Product </a></li>
    <li><a href="updateBar.exe">Update for Bar Product </a></li>
    <li><a href="updateYou.exe">Update for You Product </a></li>
</ul>

1 ответ

Решение

Было бы лучше найти версию файла на стороне сервера. Если вы сделаете это на стороне клиента, JavaScript должен будет загрузить хотя бы первые несколько фрагментов каждого файла.

Если вы хотите сохранить HTML-файл нетронутым, вы можете отправлять запросы Ajax на сторону сервера, где серверный сценарий, такой как php-файл, будет возвращать версию файла для каждого из этих файлов. Пример для такой функции php можно найти здесь: Извлечь внутреннюю информацию EXE

В следующем примере показано, как вы можете получать версии файлов через Ajax со стороны сервера и писать рядом с каждой ссылкой для скачивания.

<script src="https://raw.githubusercontent.com/vishva8kumara/arc-reactor/master/arc.js"></script>

<ul class="links">
    <li>Latest Patches:</li>
    <li><a href="updateFoo.exe" class="fetchVersion">Update for Foo Product </a></li>
    <li><a href="updateBar.exe" class="fetchVersion">Update for Bar Product </a></li>
    <li><a href="updateYou.exe" class="fetchVersion">Update for You Product </a></li>
</ul>

<script>
    var links = q('.fetchVersion');
    for (var i = 0; i < links.length; i++)
        new ajax('getVersion.php?file='links[i].getAttribute('href'),
            {
                callback: function(data, ref){
                    ref.appendChild(elem('span', data.responseText));
                }
            }, links[i])
</script>

А на сервере создайте файл getVersion.php, который принимает $_GET['file'], вызовите функцию getFileVersionInfo и запишите информацию о файле в выходной буфер.

Другие вопросы по тегам