リンクを強制してファイルを添付ファイルとしてダウンロードしようとしています。これは私が以前にやったことですが、何かがうまくいかず、それが何であるかわかりません。添付ファイルとして送信しようとしているファイルの種類はすべてmp4ファイルです。これが私がしていることです:
<?php
if(isset($_GET['file']))
{
$file_path = dirname(__FILE__) . "/videos/$_GET[file]";
if(file_exists($file_path))
{
$file_url = "/videos/$_GET[file]";
header ("Content-type: video/mp4");
header("Content-Transfer-Encoding: binary");
header("Content-disposition: attachment; filename=\"".basename($_GET['file']) ."\"");
header("Content-Length: ".filesize($file_path));
echo readfile($file_url);
}
}
?>
ご覧のとおり、ファイルを提供する前に、ファイルが存在するかどうかを確認しています。何が起こるか私はファイルを取得します、それのタイプは正しいです(MP4ビデオ)が、ファイルはサイズが約100btyesだけです。デバッグ中に、ファイルサイズが正しいかどうかをテストしました。行を次のように変更しましreadfile()
た:
header("location:/videos/$_GET[file]");
そしてそれは私をビデオに連れて行きます。私はかなりのグーグルをしました、そして私はこの振る舞いの理由を思いつきませんでした。誰かがこの種のものを見たことがありますか?これを引き起こしている可能性があるものについてのアイデアはありますか?どんな助けでも大歓迎です、どうもありがとう!