【发布时间】:2015-07-07 22:53:00
【问题描述】:
我在外部 FTP 服务器上保存了一个 mp4 文件。当我在经典 HTML5 播放器中播放此视频时,将其保存为“将视频另存为”时,一切正常。 但是当我通过这个标题下载这个文件时:
header('Content-Description: File Download');
header('Content-Transfer-Encoding: binary');
header('Content-Length: FILE_SIZE');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: no-cache');
header('Expires: Mon, 1 Apr 1974 05:00:00 GMT');
header("Content-type: video/mp4");
header("Content-disposition: attachment; filename=FILE_NAME");
readfile(FILE_URL); // do the double-download-dance (dirty but worky)
(FILE_SIZE, FILE_URL 和 FILE_NAME 当然填写正确), 比 mp4 文件下载,但每个播放器都会说“不支持这种格式”。 当我下载任何其他文件类型(pdf/ppt,...)时,一切正常。
有什么想法吗??
【问题讨论】:
-
我阅读了所有这些主题:stackoverflow.com/questions/7263923/…,stackoverflow.com/questions/14366424/force-download-mp4-files,stackoverflow.com/questions/15797762/reading-mp4-files-with-php,stackoverflow.com/questions/3128906/…,stackoverflow.com/questions/5924061/…,stackoverflow.com/questions/9728269/…,...但没有任何帮助:X
-
您介意发布您的视频的 URL 并让我们重播问题吗?
-
vaseakademie.cz/kurz/kurzid:68/stihla-vyroba-bez-balastu - 请点击右侧的第一个红色按钮“ukázka zdarma”(免费视频 - 您可以尝试通过“Stáhnout lekci”下载它 - 不起作用,或者通过浏览器作为“将视频另存为” - 工作正常)
-
嗯,刚刚测试,对比一下你给的文件(Stáhnout lekci)和演示视频的来源data.vaseakademie.cz/lekce/kurz_68/…,我下载的两个mp4文件是不同的文件。这就是为什么没有一个玩家可以玩它的原因。而且我相信标题没有问题,因为标题不能修改文件内容。我的建议是,仔细检查准备/处理下载文件的脚本,而不是标题。
-
您发送的某些标头毫无意义。不要复制损坏教程中的代码。
标签: php http http-headers mp4 download