2011-07-08 6 views
0

私は、MySQLとのやりとりを行い、Quicktime .movファイルをアップロードおよび表示するPHPを作成しています。私はイメージフォーマットで同様のことを非常に簡単に行ってきましたが、これは私にいくつかの問題を与えています。アップロードはデータがSQLテーブルに挿入されているという意味で機能しており、クライアントです。私のviewvideo.phpスクリプトから何かが取得されています。しかし、問題は、クライアントが受け取るデータが、Quicktimeムービーとしては意味がないということです。つまり、ラインのどこかに何かが間違っていた、またはデータが正しくエンコードされていないことを意味します。ここに私の2つのスクリプトの重要なセグメントである:MySQLとPHPによるビデオアップロードのヘルプ

アップロード:

$name = $_FILES["file"]["tmp_name"]; 
$contents = file_get_contents($name); 
mysql_query("INSERT INTO videos(id,data,title,description) VALUES($n,'$contents','$title','$description')"); 

表示:

$x = mysql_query("SELECT data FROM videos WHERE id=$id"); 
$results = mysql_fetch_array($x); 
$data = $results[0]; 
header("Content-Type: video/quicktime"); 
echo $data; 
exit; 

現時点での私の唯一の仮説があること、私は「」$の周りに置くとき内容は、文字列のエンコーディングを崩してしまいます。メンテナンスのためにSQLサーバーが一時的に停止しているので、これをテストするのを待たなければなりません。どんな助けもありがとうございます。

+0

バイナリMOVデータをどのようにデータベースに格納していますか?ビデオデータが混乱してDBに書き込まれる可能性があります。ファイルをサーバーに物理的に格納し、ファイルへのパスをDBに格納する方が良い。 DBのオーバーヘッドを減らす。 – Jack

+0

ファイルに '' 'が含まれているとしたら、あなたのSQLクエリはどうなりますか? – hakre

+0

私はそれをBLOBに保存しています。私はファイルに保存することができますが、管理者は私に書き込みアクセスを許可していません:( – codedude

答えて

1

データベースでこれを行うのが悪い考え。ブロブはバイナリデータ=< 256KB用です。 hereを参照してください。

私はあなたが単に

<input type="file" .../> 

を使用して.mov -filesをアップロードして、(例えばFlashで)HTTP経由で直接ファイルにアクセスしたり、プレーヤー、プラグインのようなものを使用してサーバーからそれらをストリーミングすることをお勧め。

+0

私は現在使用しているホスティングでは、 SQL。私はホスティングを切り替えることができると思うが、私はむしろ何らかの解決策を見つけることができるだろう。 – codedude

+0

あなたが真剣にそれを行うことを計画しているなら、あなたはホスティングを切り替えることを提案する。 –

+0

編集:私はホスティングを切り替えるつもりだと思うので、誰もがすばやく対応してくれてありがとう。 – codedude