1。建立好数据库CREATE TABLE Images ( PicNum int NOT NULL AUTO_INCREMENT PRIMARY KEY, Image BLOB )2.代码  <html>
<head>
  <title>Uploading...</title>
</head>
<body>
<h1>Uploading file...</h1>
<?php
 require('mysql.php');
  if ($_FILES['userfile']['error'] > 0)
  {
    echo 'Problem: ';
    switch ($_FILES['userfile']['error'])
    {
      case 1:  echo 'File exceeded upload_max_filesize';  break;
      case 2:  echo 'File exceeded max_file_size';  break;
      case 3:  echo 'File only partially uploaded';  break;
      case 4:  echo 'No file uploaded';  break;
    }
    exit;
  }  $upfile = 'uploads/'.$_FILES['userfile']['name'];  if (is_uploaded_file($_FILES['userfile']['tmp_name'])) 
  {
     if (!move_uploaded_file($_FILES['userfile']['tmp_name'], $upfile))
     {
        echo 'Problem: Could not move file to destination directory';
        exit;
     }
  } 
  else 
  {
    echo 'Problem: Possible file upload attack. Filename: ';
    echo $_FILES['userfile']['name'];
    exit;
  }
  echo 'File uploaded successfully<br><br>';   // reformat the file contents
  $fp = fopen($upfile, 'r');
  $contents = fread ($fp, filesize ($upfile));
  fclose ($fp);
 
 $query="insert into images values(null,'$contents')";
 $result=mysql_query($query)?>
</body>
</html>
文件可以上传,也到了指定的目录uploads,但是无法将图片插入数据库,用select * from images; 查询始终为空,求解

解决方案 »

  1.   

    不好意思刚才忘记把地址贴上了,补充下:http://www.phpfans.net
      

  2.   

    $contents   =   fread   ($fp,   filesize   ($upfile)); 
    这里改以下
    $contents   =   addslashes(fread   ($fp,   filesize   ($upfile))); 
    就可以了
    你图片里可能是存在了特殊字符
    还有建议把入库的sql显示出来直接在数据库里查询,利于发现错误
      

  3.   

     $fp   =   fopen($upfile,   'r '); 
    换成 $fp   =   fopen($upfile,   'rb '); 
      

  4.   

    还是不行。。出来这句
    Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\c.php on line 49Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\c.php on line 49
    no