php中使用fopen和fread上传二进制图片失败,请问哪里有问题?急!

以下是我传图片的主要代码。上传后数据库中有数据进来,但是图片为0字节!!!!!
我觉得是fopen和fread的参数写得不对导致数据库读不进二进制图片。
求高人解答!非常急!明天就要交了。。。就差这个了。谢谢
if($_POST["btn_tj"]=="提交"){
  $tpmc=htmlspecialchars($_POST['tpmc']); //将图片名称中的特殊字符转换成HTML格式
$tpmc=str_replace("\n","<br>",$tpmc); //将图片名称中的回车符以自动换行符取代  
$tpmc=str_replace(""," ",$tpmc); //将图片名称中的空格以" "取代
$author=$_SESSION['admin'];
$scsj=date("y;m;d"); //设置图片的上传时间
  $fp=fopen($file,"r"); //以只读方式打开文件
  $file=addslashes(fread($fp,filesize($file)));//将文件中的引号部分加上反斜线

$query="insert into tb_tpsc (tpmc,file,author,scsj) values ('$tpmc','$file','$author','$scsj')"; //创建插入图片数据的sql语句
$result=mysql_query($query);
echo "<meta http-equiv=\"refresh\" content=\"1;url=browse_pic.php\">图片上传成功,请稍等...";
}问题补充: 

数据库里有一条一条的记录,并且作者、日期、图片名称等等都正确的传进了数据库,就是file(也就是图片)是0字节!5555

作者: laverne5566   发布时间: 2011-06-15

可以尝试把图片以文件形式保存,数据库保存该文件的路径就行了。

作者: yangball   发布时间: 2011-06-15