Php 强制下载msi文件

Php 强制下载msi文件,php,html,http-headers,download,Php,Html,Http Headers,Download,我今天一定很忙。我似乎无法理解这一点 我的网站上有一个页面,它应该强制下载msi文件,但我想让页面的html显示下载说明 到目前为止,我已经在html中尝试了以下标记(注意,我只能访问此页面的主体) 但是,这关闭了选项卡/窗口,没有留下安装说明 最后,我在html中尝试了以下操作: <META HTTP-EQUIV="Content-Type" CONTENT="application/octet-stream"> <meta http-equiv="content-disp

我今天一定很忙。我似乎无法理解这一点

我的网站上有一个页面,它应该强制下载msi文件,但我想让页面的html显示下载说明

到目前为止,我已经在html中尝试了以下标记(注意,我只能访问此页面的主体)

但是,这关闭了选项卡/窗口,没有留下安装说明

最后,我在html中尝试了以下操作:

<META HTTP-EQUIV="Content-Type" CONTENT="application/octet-stream"> 
<meta http-equiv="content-disposition" content="attachment; filename=file.msi" />

但它拒绝下载该文件。 非常感谢任何指针。

标记应用于它们嵌入的页面。他们不会改变文件的下载方式,这被认为是一个完全独立的页面


您应该有类似于
的内容,以便在与“说明”页面不同的窗口中进行下载。

假设使用Apache,如果您想使用
.htaccess
文件,可以添加以下内容:

AddType application/octet-stream .msi
根据。然后您可以直接链接到该文件。

我发现它帮助我创建了一个PHP文件来链接,该文件将指定要下载的.msi。第一次工作

可见的下载页面,downloads.php,也许吧

<a href="/downloads/?version=App.Installer.msi">download now</a>
另外,不确定是否有必要,但我将其添加到.htaccess文件中:
AddType application/octet stream.msi
,正如

AddType application/octet-stream .msi
<a href="/downloads/?version=App.Installer.msi">download now</a>
$root = realpath($_SERVER["DOCUMENT_ROOT"]);
$file_dl = $_GET['version'];
header('Content-disposition: attachment; filename='.$file_dl);
header('Content-type: application/x-ole-storage');
readfile($root.'/downloads/'.$file_dl);