0

我们的网站包含一个链接,客户可以在其中下载最新的 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>
4

1 回答 1

0

最好在服务器端找到文件版本。如果您在客户端执行此操作,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>

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

于 2017-05-06T08:03:50.173 回答