Php Mysql插入Blob问题

Php Mysql插入Blob问题,php,mysql,file-upload,Php,Mysql,File Upload,在将blob(音乐文件)写入数据库时,我遇到了一个问题。当我尝试上传say songA(“Nothing other Matter.mp3”)时,它会播放其他歌曲(我之前尝试上传的歌曲,如songB(“Sweet Child of My.mp3”)……但它并不完全是一首歌)当然,发送到服务器的歌曲是正确的(我已经检查过),通过播放文件,我会打印['tmp_name'] 我用这个来上传 $contenttype = $_FILES['song']['type']; $songfile = $_FI

在将blob(音乐文件)写入数据库时,我遇到了一个问题。当我尝试上传say songA(“Nothing other Matter.mp3”)时,它会播放其他歌曲(我之前尝试上传的歌曲,如songB(“Sweet Child of My.mp3”)……但它并不完全是一首歌)当然,发送到服务器的歌曲是正确的(我已经检查过),通过播放文件,我会打印['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'];
}
*编辑我已多次删除数据库a,这会导致任何问题吗?


您的问题是将音乐文件写入blob$songfile必须是服务器上文件的路径

,您如何将文件取回?$songfile的价值是多少?@Devin Crossman更好奇它来自何处);@deceze我编辑了这个问题。。。但它不应该播放任何东西,好吗???为什么表现得那么奇怪???如果它不播放。。。我可以假设负载出现了一些问题@DeviceCrossman我添加了定义$songfile的行抱歉是的,确实是$songfile指向/tmp/php•••我认为这是服务器创建的临时文件如果失败,那么它不应该什么都不播放吗???@DarthCoder所以它播放的歌曲与您想要的不同?你检查过$fileid的值是正确的吗?伙计们解决了这个问题。。。这恰好是缓存问题。。。如果响应设置内容长度而力返回任何正文。我的浏览器使用了旧的缓存结果。。。在反复核对之后。。我没有使用load_文件的权限