我是要做一个播放MP3音频文件的功能,但我不想我的文件地址被别人看到,所以我用PHP打开文件并输出,

然后我在页面上用播放器就播放这个PHP文件,PHP文件是带参数的,参数里包括MP3的编号,以及随机码(使得这个地址只能打开一次,下次打开就是另一参参数了,这一参数就不能用了,参数放在COOKIE里)

现在实现了这个效果,但有两个问题:

页面打开后,点击播放,这时用JS把地址传给播器,播器开始播放,这时如果再点一次,播放器就会停止,也不会从头播放,我的想法就是再点击时就会还从头播放

而且这时不关掉当前的IE页面,在当前IE页面内打开任何本站点的页面,或是点击本站点内的任何连接,都会出现打不开的情况,就是那种浏览器在请求地址,但长时间请求不到,我怀疑是不是根我输出文件的那个PHP程序写的有问关,

页面上还有其它歌曲,我只要点了一首歌,再点其它歌也是不行了,

PHP输出文件的地方如下:

functiongetfile($file_dir,$file_name){
$file_path=$file_dir;
if(!file_exists($file_path))
{
echo'对不起,你要下载的文件不存在。';
returnfalse;
}
$file_size=filesize($file_path);
/*
header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");
header("Accept-Length:$file_size");
header("Content-Disposition:attachment;filename=".$file_name);
*/
header('Pragma:public');
header('Last-Modified:'.gmdate('D,dMYH:i:s').'GMT');
header('Cache-Control:no-store,no-cache,must-revalidate');
header('Cache-Control:pre-check=0,post-check=0,max-age=0');
header('Content-Transfer-Encoding:binary');
header('Content-Encoding:none');
header('Content-type:application/octet-stream');
header('Content-Disposition:attachment;filename="'.$file_name.'"');
header("Content-length:$file_size");
$fp=fopen($file_path,"r");
$buffer_size=1024;
$cur_pos=0;

while(!feof($fp)&&$file_size-$cur_pos>$buffer_size)
{
$buffer=fread($fp,$buffer_size);
echo$buffer;
$cur_pos+=$buffer_size;
}

$buffer=fread($fp,$file_size-$cur_pos);
echo$buffer;
fclose($fp);
}


第二个问题,我在PHP输入页面时对COOKIE里的东西进行判断,和传来的参数进行比较,一样的话就把COOKIE清除掉,然后输入文件,如果不一样就提示错误
这时又出现问题了,我直接用带参数的地址可以打开文件,并且都能下载,但我在播放器里就是放不了这个文件,如果我把清除COOKI那一步去掉的话,则可以播放,我想请问下这是什么原因,有什么好的解决办法,

11 个解决方案

#1


该回复于2015-05-26 12:58:17被管理员删除

更多相关文章

  1. php中的文件包含
  2. 使用php浏览文件时,编写文件的完整路径
  3. composer不能生成sf2 autoload文件。
  4. include一个php文件,经常会失败,请问需要注意些什么?
  5. nginx + fastcgi  php配置下,安全的文件上存路径设置
  6. 使用“.html”链接到.html.php文件 - 这有什么神奇之处?
  7. php清理当前目录下的指定文件和空目录(源码),建议服务器端执行
  8. 如何从其他文件调用数组
  9. 用于上传多个文件的PHP代码

随机推荐

  1. 【Android】Android的快速开发框架Afinal
  2. Android导航栏资源总结,单纯防丢!
  3. 学习Android 必备 实例大集合
  4. 【Android游戏开发二十一】Android os设
  5. android 网络 post get
  6. Android消息处理系统
  7. android 界面应用锦集
  8. Android(安卓)学习笔记 Contacts Content
  9. Android中解决手机屏幕横竖屏切换问题
  10. android SDK与ADT版本更新问题