2012-04-04 27 views
3

私は密な一日を過ごす必要があります。私はこれを理解できないようです。msiファイルの強制ダウンロード

私は自分のウェブサイトにmsiファイルのダウンロードを強制するべきページを持っていますが、ダウンロードの指示が表示されたページのhtmlを残したいと思います。

はこれまでのところ、私は、これが文字化けテキストとしてバイナリファイルを示したFirefoxでしかし(私はこのページの本文へのアクセス権を持って注意してください)HTMLで

<meta http-equiv="Refresh" content="0; URL=file.msi"> 

を次のタグを試してみました。

次の私は、次のPHPは

$file = "file.msi"; 
header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename='.basename($file)); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 5'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Pragma: public'); 
header('Content-Length: ' . filesize($file)); 
ob_clean(); 
flush(); 
readfile($file); 
exit; 

を挿入しようとしたが、これはタブ/ウィンドウを閉じて、インストールの手順を残していません。

は最終的に、私は、HTMLに戻って、次の試してみました:

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

をしかし、これはファイルをダウンロードすることを拒否します。 すべてのポインターを大いに感謝します。

+0

以下の回答を参照してください。 – Whymarrh

答えて

0

<meta>タグは、埋め込まれているページに適用されます。ファイルのダウンロード方法は変更されません。完全に別のページとみなされます。

<a href="downloadmsi.php" target="_new" />download</a>のように、ダウンロードは手順ページとは別のウィンドウで行われるようにしてください。あなたは、次の追加でき.htaccessファイルを使用したい場合

0

、アパッチと仮定すると:

AddType application/octet-stream .msi 

this sourceを1として。それでは、ファイルにリンクするだけです。

0

ダウンロードする.msiを指定するリンク先のPHPファイルを作成するのに役立つthis linkが見つかりました。初めての作業。多分

可視ダウンロードページ、downloads.php、hrefの上から

<a href="/downloads/?version=App.Installer.msi">download now</a> 

Severの処理ページ、すなわちexample.com/downloads/index.php

$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); 

また、わからないことあれば必要でしたが、.htaccessファイルにAddType application/octet-stream .msiというように追加しました。Marc B

関連する問題