如何获取和播放存储为MySQL BLOB的WAV文件?

时间:2011-02-06 01:00:24

标签: php mysql database zend-framework

我想使用PHP和Zend-Framework获取和播放存储在MySql Db中的WAV文件。但我无法这样做。 我想分两步完成: 1.将BLOB转换为.wav文件 2.在新窗口中播放.wav文件。

请帮帮我............

提前致谢......

2 个答案:

答案 0 :(得分:4)

要将数据存储在数据库中,您可以执行以下操作:

$tmpName  = $_FILES['userfile']['tmp_name'];

$fp      = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);

然后你将$ content插入到sql查询的blob字段中。要读取文件,它将类似于:

$query = "SELECT name, type, size, content " .
     "FROM upload WHERE id = '$id'";

header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$name");
echo $content;

要读取文件,只需执行第二个代码并下载文件即可。您可以使用上面的代码将您的Flash播放器或您使用的内容指向该网址,它应该可以正常工作。

希望这有帮助 参考:http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/uploading-files-to-mysql-database.aspx

答案 1 :(得分:-1)

$query = "select voiceBlob from voiceTable where pk = ".$_GET['id'];
$result = mysql_query($query);
$row=mysql_fetch_assoc($result)  ;
$data = $row["voiceBlob"];

$ourFileName = "uploads/voiceFile.wav";
$fh = fopen($ourFileName, 'w') or die("can't open file");
fwrite($fh, $data);
fclose($fh);

这是从数据库获取数据并存储在文件中。现在播放voiceFile.wav