【问题标题】:How to download mp4 file via http headers如何通过 http 标头下载 mp4 文件
【发布时间】: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,...)时,一切正常。

有什么想法吗??

【问题讨论】:

标签: php http http-headers mp4 download


【解决方案1】:

文件 1(文件错误,无法播放):

http://www.vaseakademie.cz/ajax/s:lekceTools/c:lekceTools/m:getFile/loID:177

通过“Stáhnout lekci”

文件大小:50156182 MD5:ef0bf2fdfe1774c0a75d26202cdebdcd

文件2(文件正确,可以播放):

http://data.vaseakademie.cz/lekce/kurz_68/b55bf87383652751aeefd02f844f9fd9.mp4

来自播放视频的来源。同样右键,视频另存为

文件大小:50156182 MD5:ef72631add8524d72ac1b61bacf0cc1a

结论:

头没有问题,文件内容不同。你应该检查你的脚本文件处理,而不是标题

【讨论】:

  • 我在 NetBeans 中打开并比较了这些文件(我知道,这不是最好的解决方案,但很有效)......那个“坏”文件在文件的开头有 cca​​ 6 个空行(并且文件末尾的一些字符,但我认为这并不重要)......这些空行可以添加到哪里?
  • 谢谢!我不得不在文件下载的代码中创建一个例外,因为周围有一些镇流器,但现在每个想法都是正确的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 2010-09-28
  • 2021-01-29
  • 1970-01-01
相关资源
最近更新 更多