图片存储与浏览一例(Linux+Apache+PHP+MySQL)

  •   2009-08-01/08:16
  • 注意本程序使用的表结构为:
        use test;
        create table image(
                           id int unsigned auto_increment primary key,
                           description text,
                           filename varchar(50),
                           filesize int,
                           filetype varchar(50),
                           filedata longblob
                          );
    */

    //?cmd={read|list|form|store}

    //检查cmd参数的合法性
    switch($cmd){
       case 'read':
          break;
       case 'list':
          break;
       case 'form':
          break;
       Case 'store':
          break;
       default:
          $cmd = 'list';
          break;
    }

    switch($cmd){
       case 'read':
          //?cmd=read&id={}
          //读一个图片
          $server = mysql_connect("localhost","test","") or die("无法连接数据库服务器");
          mysql_select_db("test",$server) or die("无法连接数据库");
          $sql = "select filetype,filedata from image where id='$id'";
          $rst = mysql_query($sql,$server) or die("$sql查询出错");
          if($row=mysql_fetch_row($rst)){
             header("Content-Type:" . $row[0]);
             echo $row[1];
          }
          else{
             echo "没有找到该记录";
          }
          mysql_free_result($rst);
          mysql_close($server) or die("无法与数据库服务器断开连接");
          break;
       case 'list':
          //?cmd=list
          //显示所有图片
          echo '<html>';
          echo '<head><title>图片存储与浏览一例</title></head>';
          echo '<body>';
          echo '<a href="' . $PHP_SELF . '?cmd=list">显示所有图片</a>';
          echo "&nbsp;&nbsp;&nbsp;&nbsp;";
          echo '<a href="' . $PHP_SELF . '?cmd=form">上传图片</a>';
          $server = mysql_connect("localhost","test","") or die("无法连接数据库服务器");
          mysql_select_db("test",$server) or die("无法连接数据库");
          $sql = "select id,description,filename,filetype,filesize from image";
          $rst = mysql_query($sql,$server) or die("$sql查询出错");
          while($row=mysql_fetch_row($rst)){
             echo "<hr>";
             echo "描述:" . $row[1] . "<br>";
             echo "文件名:" . $row[2] . "<br>";
             echo "类型:" . $row[3] . "<br>";
             echo "大小:" . $row[4] . "<br>";
             echo '<img src="' . $PHP_SELF . '?cmd=read&id=' . $row[0] . '">';
          }
          mysql_free_result($rst);
          mysql_close($server) or die("无法与数据库服务器断开连接");
          echo '</body>';
          echo '</html>';
          break;
       case 'form':
    ?>

    <html>
    <head><title>图片存储与浏览一例</title></head>
    <body>
    <form action="<?echo $PHP_SELF;?>?cmd=store" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="2097152">
    描述:<br>
    <textarea name="description" rows="5" cols="100"></textarea><br>
    文件:<input type="file" name="file"><br>
    <input type="submit" value="上传">
    </form>
    </body>
    </html>

    <?
          break;
       case 'store':
          //?cmd=store&description={}&file={}&file_size={}&file_type={}&file_name={}
          //存储图片
          echo '<html>';
          echo '<head><title>图片存储与浏览一例</title></head>';
          echo '<body>';
          echo '<a href="' . $PHP_SELF . '?cmd=list">显示所有图片</a>';
          echo "&nbsp;&nbsp;&nbsp;&nbsp;";
          echo '<a href="' . $PHP_SELF . '?cmd=form">上传图片</a>';
          $server = mysql_connect("localhost","test","") or die("无法连接数据库服务器");
          mysql_select_db("test",$server) or die("无法连接数据库");
          $data = addslashes(fread(fopen($file,"r"),filesize($file)));
          $sql = "insert into image(description,filename,filetype,filesize,filedata)
                  values('$description','" . basename($file_name) . "','$file_type',$file_size,'$data')";
          mysql_query($sql,$server) or die("$sql执行出错");
          $id = mysql_insert_id();
          echo "<hr>你上传的图片效果:<br>";
          echo '<img src="' . $PHP_SELF . '?cmd=read&id=' . $id . '">';
          mysql_close($server) or die("无法与数据库服务器断开连接");
          echo '</body>';
          echo '</html>';
          break;
    }
    ?>

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多