4

濃密な日々を過ごしているに違いない。私はこれを理解できないようです。

私の Web サイトには、msi ファイルのダウンロードを強制するページがありますが、ページの html にダウンロード手順を表示したままにしたいと考えています。

これまでのところ、html で次のタグを試してみました (このページの本文にしかアクセスできないことに注意してください)。

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

ただし、Firefox では、バイナリ ファイルが文字化けしたテキストとして表示されました。

次に、次の 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" />

しかし、これはファイルのダウンロードを拒否します。どんなポインタでも大歓迎です。

4

3 に答える 3

1

Apache を想定して、ファイルを使用したい場合は.htaccess、次を追加できます。

AddType application/octet-stream .msi

このソースによると。その後、ファイルにリンクするだけです。

于 2012-04-04T16:42:56.790 に答える
0

ダウンロードする.msiを指定するリンク先のPHPファイルを作成するのに役立つこのリンクを見つけました。初めて働いた。

目に見えるダウンロードページ、downloads.php、おそらく

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

上記の href のサーバー処理ページ、つまり 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

于 2013-01-22T17:22:23.797 に答える
0

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

<a href="downloadmsi.php" target="_new" />download</a>指示ページとは別のウィンドウでダウンロードが行われるようにする必要があります。

于 2012-04-04T16:37:32.730 に答える