强制下载mp4文件


Force download mp4 files

我想强制用户下载youtube视频。例如这个url。我下载视频,我可以播放原始视频,但即使视频的长度/大小是相同的,我不能播放它时,被强制下载。

function force_download($file,$video_url)
{
  $video_data = file_get_contents($video_url);
  file_put_contents($file, $video_data);
  if(isset($file) && file_exists($file))
  {
    header('Content-length: ' .  filesize($file));
    header('Content-type: application/octet-stream');
    header('Content-Disposition: attachment; filename= "' . $file . '"');
    readfile($file);
  }
}
force_download('youtube.mp4',$video_url);

如果你可以使用htaccess…

<FilesMatch "'.(mp4|MP4)">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>

我也用它来强制pdf下载。工作好了!

这是另一个关于PHP强制下载的堆栈问题…做本质上与我上面写的htaccess相同的事情。将内容处理设置为附件是关键。

如何使用PHP强制下载文件

编辑:hrmm…但你已经做过类似的事情,但没有奏效……看看你能不能让htaccess和你想要做的一起工作