【问题标题】:Problems serving video data to iPhone/Blackberry/PalmPre向 iPhone/Blackberry/PalmPre 提供视频数据时出现问题
【发布时间】:2010-04-09 03:33:01
【问题描述】:

我有一个小脚本,我正在尝试移植它来为 iPhone/Blackberry/PalmPre 等提供视频数据。

代码简单得离谱:

$type = "video/3gpp"; /* get mimetype from db */
$fileid = "0001"; /* File path from db */
header( "Content-Length: " . filesize( $fileId ) );
header( "Content-type: $type" );
readfile( $fileId );

它只是根据参数获取文件 id,并使用 readfile 将文件发送给请求者。

但是由于某些奇怪的原因,它只能工作一次。 如果您尝试在 iPhone 和 BlackBerry 上连续两次访问该页面,它将在第一次工作。然后,它要么超时,要么停止响应请求。这种行为在非移动设备上是不一样的,它在 Firefox/Safari/Chrome 中运行良好。我相当肯定它与非移动端的缓存无关。

任何想法为什么会发生这种情况?

【问题讨论】:

  • 这可能有助于查看来自服务器的实际原始 HTTP 响应标头 - 使用“curl”或其他类似代理的工具,例如 Charles 或 Fiddler2。

标签: php iphone blackberry


【解决方案1】:

看起来这可能是由于 PHP 在发送数据时无法检测到浏览器何时关闭连接而导致我的一些奇怪行为。

查看自 2004 年以来在 PHP 中打开的 bug http://bugs.php.net/bug.php?id=30301

【讨论】:

    猜你喜欢
    • 2011-07-05
    • 2011-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多