2

我想强制用户下载 youtube 视频。例如这个网址。我下载了视频,我可以播放原始视频,但即使视频的长度/大小相同,我在 force_downloaded 时也无法播放。

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

1 回答 1

9

如果你可以使用htaccess ...

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

我也使用它来强制下载 PDF。效果很好!

这是另一个关于使用 PHP 强制下载的堆栈问题...与我上面写的 htaccess 基本相同。将内容处置设置为附件是关键。

如何使用 PHP 强制文件下载

编辑: hrmm ......但是你已经做了类似的事情,但它不起作用......看看你是否可以让 htaccess 与你正在尝试做的事情一起工作我猜。

于 2013-01-16T19:42:20.510 回答