V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Kaiyuan
V2EX  ›  问与答

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

  •  
  •   Kaiyuan · 2013-09-17 18:42:24 +08:00 · 2408 次点击
    这是一个创建于 3911 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我是直接仿照搜到的「防盗链」的代码改的。
    声明一个文件头然后输出内容。

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

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

    这里有一个非常简易的断点续传实现,但是问题很多。一般没有太特殊的需求还是用sendfile吧。
    Kaiyuan
        4
    Kaiyuan  
    OP
       2013-09-17 19:19:42 +08:00
    @jasontse
    @msg7086
    我只是照抄的,对后端编程其实了解甚浅,直接搜出来就粗略的改了一下。当中代码其实不怎么懂其意思。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   920 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 19:21 · PVG 03:21 · LAX 12:21 · JFK 15:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.