-1

blob (音楽ファイル) をデータベースに書き込むときに問題が発生します。songA("Nothing else Matter.mp3") と言ってアップロードしようとすると、他のもの (songB("Sweet Child of mine.mp3") のように少し前にアップロードしようとしたもの) が再生されますが、正確ではありません。 1つずつオフ)もちろん、サーバーに送信される曲は正しいです(私はそれを確認しました)ファイルを再生して['tmp_name']を印刷します。

これを使ってアップロードしています

$contenttype = $_FILES['song']['type'];
$songfile = $_FILES['song']['tmp_name'];
$size = $_FILES['song']['size'];
$query = "INSERT INTO file(contenttype,file,size) values('".$contenttype."',LOAD_FILE('$songfile'),".$size.")";

これは私のdbtableファイルの構造です

CREATE TABLE file(
     id INT PRIMARY KEY AUTO_INCREMENT
    ,contenttype VARCHAR(30)
    ,file LONGBLOB
    ,name VARCHAR(30)
    ,size INT
)engine=innodb;

サーバーは適切なファイルを取得しているので、障害はmysqlにあると想定しました

ファイルのダウンロード

$query = "SELECT * FROM file WHERE id=$fileid";
$res = mysql_query($query,$connection) or die("$fileid Error ".mysql_error());
if(!$res){
    $status = false;
    error_log("fileid: ".$fileid);
    $response = new Tonic\Response(Tonic\Response::OK); //using tonic shouldn't matter
}else{
    $tres = mysql_fetch_assoc($res);
    $response = new Tonic\Response(Tonic\Response::OK);
    $response->contentType=$tres['contenttype'];
    $response->contentLength=$tres['size'];
    $response->contentTransferEncoding='binary';
    error_log('Length: '.strlen($tres['file'])); //strangely this is zero ?? but how is it even playing ??
    $response->body = $tres['file'];
}

*EDIT データベースを数回削除しましたが、何か問題が発生しますか?

4

1 に答える 1

-1

LOAD_FILE

あなたの問題は、音楽ファイルをブロブに書き込むことです。$songfile はサーバー上のファイルへのパスでなければなりません

于 2013-05-14T05:50:38.433 に答える