我想使用PHP和Zend-Framework获取和播放存储在MySql Db中的WAV文件。但我无法这样做。 我想分两步完成: 1.将BLOB转换为.wav文件 2.在新窗口中播放.wav文件。
请帮帮我............
提前致谢......
答案 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