【问题标题】:Get Version info for download file in HTML以 HTML 格式获取下载文件的版本信息
【发布时间】:2017-05-04 20:42:57
【问题描述】:

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

【问题讨论】:

  • 这将需要将每个文件下载到客户端,并为用户和您的服务器消耗带宽。如果您从客户端获取版本号然后插入页面HTML内容会更好。
  • 什么是服务器端脚本语言,以及文件是用什么编译和构建的。我认为在这种情况下构建工具很重要。
  • 从构建系统或存储库本身获取版本号不是更容易吗..
  • 我们试图避免每次上传新补丁文件时都必须编辑 HTML 页面。我们的构建系统可以将文件放在那里。但是我们不能自动编辑 HTML。由于文件驻留在服务器上,有没有办法直接从文件中提取版本信息并显示在网页上?我们也愿意使用另一种方法。我们要避免的事情是每次上传补丁时都必须编辑 HTML。
  • 您可以使用php或ASP(或ASP.net)等服务器端脚本语言通过Web服务器生成并返回HTML页面,因此您不必手动编辑HTML页面。

标签: javascript html fileversioninfo getfileversion


【解决方案1】:

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

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

以下示例展示了如何通过 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 函数并将文件信息写入输出缓冲区。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 2017-10-24
    • 2015-01-12
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多