强制下载框打开时音乐缓冲停止

时间:2012-09-05 13:33:44

标签: php cakephp-1.3

我正在开发社交网站,其中grooveshark integration用于音乐和图片共享,如Facebook。这是完整的ajaxify网站。所以在这个网站上,人们可以听音乐,而另一方面他可以做其他事情,比如他可以分享状态,上传图片,分享像facebook这样的链接。当用户打开任何图像时,都有按钮下载它。我的问题是,当我在音乐播放时点击下载按钮下载图像时,它会(如果我在网络中通过inspect元素看到)流式传输失败并显示部分内容(http代码206)以及下载的调用显示被取消但返回http代码200ok(在网络中由inspect元素)。  这是代码:

 if(file_exists($media_name))
 $path='../webroot/img/user_media/original_uploaded_size/'.$user_id;
    else
    $path='../webroot/img/user_media/single_photo_878_549/'.$user_id;

header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($media_name));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($path));
ob_clean();
flush();
readfile($path);

请帮忙。
如果有人不明白,请发表评论,我会告诉你我的问题......

1 个答案:

答案 0 :(得分:0)

你在使用会话吗?请在请求结束时尝试使用session_write_close();。这基本上将最终确定请求。