Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php脚本下载视频_Php - Fatal编程技术网

如何使用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');