doumuyu0837 2009-10-04 15:26
浏览 113
已采纳

我可以用PHP提供MP3文件吗?

In the same way that it's possible to serve up images with php, for use in CAPTACHAS and such, is it possible to do the same with audio files?

I've tried this

<?php

$track = "sometrack.mp3";

if(file_exists($track)) {
    header('Content-type: audio/mpeg');
    header('Content-length: ' . filesize($track));
    header('Content-Disposition: filename="sometrack.mp3"');
    header('X-Pad: avoid browser bug');
    header('Cache-Control: no-cache');
    print file_get_contents($track);
} else {
    echo "no file";
}

I'm using Safari, which can play MP3 files. It's kicking Safari into the right mode, I get the Quicktime controls for a few seconds, and then "No Video".

I'm trying to protect files from unauthorized download in case you're wondering why I'd want to do this.

  • 写回答

2条回答 默认 最新

  • dongxuan2577 2009-10-04 15:30
    关注

    Your Content-Disposition should be:

    header('Content-Disposition: attachment; filename="sometrack.mp3"');
    

    Not sure if that's the problem though. I would also recommend using readfile to output the file:

    readfile($rSong);
    

    Also, it can't hurt to use an exhaustive Content-Type header, and set the Content-Transfer-Encoding:

    header("Content-Transfer-Encoding: binary"); 
    header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3"); 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 vs2022无法联网
  • ¥15 TCP的客户端和服务器的互联
  • ¥15 VB.NET操作免驱摄像头
  • ¥15 笔记本上移动热点开关状态查询
  • ¥85 类鸟群Boids——仿真鸟群避障的相关问题
  • ¥15 CFEDEM自带算例错误,如何解决?
  • ¥15 有没有会使用flac3d软件的家人
  • ¥20 360摄像头无法解绑使用,请教解绑当前账号绑定问题,
  • ¥15 docker实践项目
  • ¥15 利用pthon计算薄膜结构的光导纳