获取 HTML 中下载文件的版本信息

Get Version info for download file in HTML

我们的网站包含一个 link,客户可以在其中下载最新的 update.exe 文件。我们想让网页自动显示每个补丁文件的文件版本信息。这些文件是经过数字签名的本机 windows 可执行文件。

有没有一种方法可以使用 HTML5 或 javascript 从文件中获取和显示版本信息,而无需用户单击按钮?本质上,我们希望文件版本在页面加载或刷新时更新。这就是我们现在所拥有的。我想在每一行的 "Product" 之后添加 "Version 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>

最好在服务器端找到文件版本。如果您在客户端执行此操作,JavaScript 必须至少下载每个文件的前几个块。

如果您想保持 HTML 文件完整,您可以向服务器端发出 Ajax 请求,服务器端脚本如 php 文件将 return每个文件的文件版本。可以在此处找到此类 php 函数的示例:

以下示例显示了如何通过 Ajax 从服务器端获取文件版本并在每次下载后写上 link。

<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>

然后在服务器上创建一个接受 $_GET['file'] 的文件 getVersion.php,调用 getFileVersionInfo 函数并将文件信息写入输出缓冲区。