さまざまな有料プログラムをダウンロードするためにログインする必要があるphpとmysqlを使用してページを設定しました。ここでリンクをクリックすると、プログラムが正しくダウンロードされて実行されます。PHPでexeファイルをダウンロードする際のWindowsの互換性エラー
$c3 = mysql_result($result,$i,"exe");
echo "<a href='$c3'>... etc
しかし、プロパティをRT-クリック彼らは、そのファイルへのパスを見ることができますので、私はに上記の変更:
次のようにdownloads3.phpがある$c3="downloads3.php?link=".mysql_result($result,$i,"exe");
:
<?php
$file = $_GET['link'];
$size = filesize($file);
$type = filetype($file);
$path = "../downloads/";
header('Content-Type: $type');
header("Content-Transfer-Encoding: Binary");
header("Content-Disposition: attachment; filename=$path.$file");
header("Content-Length: ".filesize($file));
readfile($file_url);?>
?>
正しいファイルが見つかりましたが、セキュリティ上の警告が表示されますが、クリックするとすぐに、このバージョンのWindowsと互換性がないというWindowsエラーメッセージが表示されます。上記のヘッダーにあるものである必要がありますが、何が分かりません。さまざまな順列を試みた。
上記の作業をするか、またはソースパスを隠す他の方法のいずれかを使用していますか?ありがとう。
2つの質問がありますが、ここでは$タイプが定義されていますが、これはすべてのバージョンのWindowsで起こっていますか、特定のバージョンのみですか?私はあなたがプログラムが本当に直接使用されるときに互換性があることを確かめたと仮定していますか? – AlexC
ダウンロードしたファイルと元のファイルを比較するとどうなりますか?それぞれの16進ダンプを保存し、diffを使用して比較を行います。 EXEファイルが壊れているように見えます。 EXEファイルが大きければ、ダウンロードが完了する前にスクリプトが強制終了されるかもしれません。また、16進ダンプのdiffを使用すると、何が起こっているのかが強調されます。 –