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

  注意本程序使用的表结构为:

  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 "    ";

  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 "    ";

  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;

  }

  ?>