0

我正在使用以下 php 类将文本转换为语音: http: //www.masnun.me/2009/12/14/googles-text-to-speech-api-a-php-wrapper-class.html

它使用google的API,现在代码将文件保存在本地,但是我希望它强制将文件流式传输到用户的浏览器。这就是我想出的:

function saveToFile($filename) {
    $filename = trim($filename);
    if(!empty($filename)) {
            header("Content-type: application/octet-stream");
            header('Content-length: ' . filesize($this->mp3data));
            header('Content-Disposition: filename="' . $filename);
            header('X-Pad: avoid browser bug');
            header('Cache-Control: no-cache');
            readfile($this->mp3data);
    } else { return false; }
}

但生成的文件是 0kb 的空 mp3 文件。我究竟做错了什么?

4

2 回答 2

2

readfile()接受文件名作为参数,而不是文件的内容。尝试用这个替换 readfile 行:

echo $this->mp3data;
于 2012-05-14T22:48:32.647 回答
1

是否readfile真的回显到浏览器?如果它只是返回一些东西,它不会像你期望的那样工作:

echo readfile($this->mp3data);

我也知道 readfile 可以使用路径,如果是这种情况,请尝试:

echo $this->mp3data;
于 2012-05-14T22:47:19.043 回答