2011-02-06 32 views
7

PHPとZend-Frameworkを使用してMySql Dbに保存されたWAVファイルを取得して再生したいとします。しかし、私はそうすることができません。 2つのステップでこれを行いたい: 1. BLOBを.wavファイルとして変換する 2.新しいウィンドウでその.wavファイルを再生する。MySQL BLOBとして保存されたWAVファイルを取得して再生するには?

は、データベース内のデータを保存するには...... ............

+4

あなた自身の面倒を保存し、最初にdbに格納しないでください。これは決して良いアイデアではありません(画像やその他のバイナリファイルでも同じです) –

答えて

3

を事前に

おかげで私を助けてください、あなたはこのような何かをするだろう:

$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; 

は、ファイルを読み込むには、ちょうど第二のコードが実行され、ファイルがダウンロードする必要があります持っています。あなたは上記のコードであなたのフラッシュプレーヤーまたはあなたがこれまでに使用したURLを指すことができ、それはうまくいくはずです。

希望これは REFを助けた:http://www.php-mysql-tutorial.com/wikis/mysql-tutorials/uploading-files-to-mysql-database.aspx

-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); 

これは、ファイル内のDBとストアからデータを取ることです。今すぐvoiceFile.wavを再生してください

+1

-1、これはSQLインジェクションホールです。参照:http://www.tizag.com/mysqlTutorial/そして、SQLインジェクションについて説明するセクションまでを読んでください。http://stackoverflow.com/questions/332365/xkcd-sql-injection-please-explain – Johan

関連する問題