Kaiyuan
V2EX  ›  问与答

PHP 重新生成多媒体文件串流遇到奇怪问题

  •  
  •   Kaiyuan · Sep 17, 2013 · 2975 views
    This topic created in 4709 days ago, the information mentioned may be changed or developed.
    我是直接仿照搜到的「防盗链」的代码改的。
    声明一个文件头然后输出内容。

    但是这样 PHP 重新生成的文件遇到的问题是:
    IE10 完美支持;
    Chrome 只能播放一次 mp4,不能播放 mp3;
    Safari 不能载入 mp4,可以播放 mp3;
    Chrome 和 Safari 如果直接打开连接都能正常播放,但是只用 <video> 引用则出现问题。
    保存到本地完全没有问题。

    以下是代码,简易的,实际用还会加上其他 key 的判断网址和时效。
    https://gist.github.com/Kaiyuan/6592634
    4 replies    1970-01-01 08:00:00 +08:00
    jasontse
        1
    jasontse  
       Sep 17, 2013 via iPad   ❤️ 1
    内容大小不是 Accept-Length 而是 Content-Length。
    看见了 Accept-Ranges 但是没有断点续传相关实现。
    这种事情应该 X-Sendfile 做。
    msg7086
        2
    msg7086  
       Sep 17, 2013
    好神奇的fread和print_r……
    好神奇的404+Location……
    好神奇的accept-ranges却不检查http_range不返回206……
    msg7086
        3
    msg7086  
       Sep 17, 2013   ❤️ 1
    http://stackoverflow.com/questions/157318/resumable-downloads-when-using-php-to-send-the-file

    这里有一个非常简易的断点续传实现,但是问题很多。一般没有太特殊的需求还是用sendfile吧。
    Kaiyuan
        4
    Kaiyuan  
    OP
       Sep 17, 2013
    @jasontse
    @msg7086
    我只是照抄的,对后端编程其实了解甚浅,直接搜出来就粗略的改了一下。当中代码其实不怎么懂其意思。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1095 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:45 · PVG 01:45 · LAX 10:45 · JFK 13:45
    ♥ Do have faith in what you're doing.