如何使用php脚本下载视频
在我的程序中,我想添加一个下载选项来下载当前正在播放的视频。我尝试了以下代码:如何使用php脚本下载视频,php,Php,在我的程序中,我想添加一个下载选项来下载当前正在播放的视频。我尝试了以下代码: $psp = "Tom_20_amp__20Jerry_20race-1.flv"; header("Content-type:application/octet-stream"); header("Content-Disposition:attachment;filename=$psp"); 但我得到了这个错误: “C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\Tom\u 20\u amp
$psp = "Tom_20_amp__20Jerry_20race-1.flv";
header("Content-type:application/octet-stream");
header("Content-Disposition:attachment;filename=$psp");
但我得到了这个错误:
“C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\Tom\u 20\u amp\u 20Jerry\u 20race-1-5.flv”不是有效的flv文件
视频流传输正常。请指导我更改您的标题来源:
header("Content-type:application/octet-stream");
致:
然后你可以做:
header("Content-Disposition:attachment;filename=\"$psp\"");
//allways a good idea to let the browser know how much data to expect
header("Content-length: " . filesize($psp) . "\n\n");
echo file_get_contents($psp); //$psp should contain the full path to the video
如果您希望允许文件下载而不是流式传输,那么类似的方法应该可以工作。显然,您需要更改路径
// We'll be outputting a PDF
header('Content-type: application/pdf');
// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="download.pdf"');
// The PDF source is in original.pdf
readfile('original.pdf');
编辑
在你的情况下,是这样的
// We'll be outputting a video
header('Content-type: video/flv');
// It will be called video.flv
header('Content-Disposition: attachment; filename="video.flv"');
// The PDF source is in original.flv
readfile('original.flv');
发送带有pdf标题的flv将使他处于与现在相同的状态。非常感谢,它工作正常,但它会自动打开播放器并流式播放下载的视频。是否有其他方法可以停止这一过程,这主要取决于浏览器,例如在FF中,如果我不想下载mp3,我始终需要单击“保存链接文件”,因为如果我点击链接,它会像你的情况一样启动播放器。然后我必须转到文件并将文件另存为,当我在IE中单击链接时,它将开始自动下载。这就是浏览器通常处理下载的方式(你可以在浏览器设置中禁用此行为,但如果用户打开此设置,你无法阻止它发生)感谢你在我的应用程序中快速回复我正在下载所有类型的视频,因此如果我添加标题(“内容类型:视频/flv”);在标题部分,我下载了avi视频,如果出现任何问题,或者我应该在代码中添加所有标题/为具有不同标题的所有类型的视频做好准备(例如,avi与mpg和flv有不同的标题,搜索stackoverflow,有一篇文章包含多种视频类型的多标题信息),您可以尝试使用标题(“内容类型:应用程序/强制下载”);为了强制下载而不是播放,我没有测试它,所以我不知道它是如何工作的。
// We'll be outputting a video
header('Content-type: video/flv');
// It will be called video.flv
header('Content-Disposition: attachment; filename="video.flv"');
// The PDF source is in original.flv
readfile('original.flv');