我创建了一些小的 Flash 小部件,它们可以从 Apache/php 主机流式传输 .mp3 音频。mp3 文件无法直接访问,并且不会自行保存到浏览器缓存中。
为此,我将主机上的 mp3 文件权限设置为“所有者:读/写”(数值 600)。这使得只有我的 .php 文件可以读取 .mp3。
然后我从我的 ActionScript 向我的 php 文件发出请求,它将 mp3 流式传输到我的小部件。(如果客户端/用户在浏览器缓存中查找,则找不到所需的 mp3 文件)
这是流式传输文件的 php 代码:
<?php
ob_start();
header("Expires: Mon, 20 Dec 1977 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-Type: audio/mpeg");
@readfile($_GET["file"]);
ob_end_flush();
?>
有谁知道如何使用 IIS/ASP.Net 重现此行为
1.) Make it so a file is only accessible to a file on the server.
2.) Stream that file using an .ASPX or .ASHX?