我使用以下php类将文本转换为语音:http://www.masnun.me/2009/12/14/googles-text-to-speech-api-a-php-wrapper-class.html
它使用谷歌的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文件。我做错了什么?
答案 0 :(得分:2)
readfile()
接受文件名作为参数,而不是文件的内容。
尝试用以下内容替换readfile行:
echo $this->mp3data;
答案 1 :(得分:1)
readfile
是否真的回应了浏览器?如果它只是返回一些东西,它将无法按预期工作:
echo readfile($this->mp3data);
我也理解readfile适用于路径,如果是这种情况,请尝试:
echo $this->mp3data;