php用流方式制作缩略图

网络整理 - 07-26
其中db_mysql.inc.php,config.php,function.php不是真正使用到的,关键是$filename 文件名,我是通过读取数据库中的图片名称
  
  <?php
  include_once ('inc/db_mysql.inc.php');
  include_once ('inc/config.php');
  include_once ('class/function.php');
  
  global $picPath;
  
  if (strstr($_SERVER[HTTP_USER_AGENT],"MSIE")) {
   $attachment = '';
  } else {
   $attachment = ' atachment;';
  }
  
  $image = getInfo('newssp_gallery','id',$_GET['id']);
  
  $filename = $picPath.$image['filename'];
  
  if (!file_exists($filename)) {
   $filename = $picPath."notexist.gif";
  }
  
  header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
  header("Cache-Control: post-check=0, pre-check=0", false);
  header("Pragma: no-cache"); // HTTP/1.0
  
  header("Content-disposition:".$attachment." filename=".$image['original']);
  
  $size = @filesize($filename);
  
  header("Content-Length: $size");
  
  $fd = @fopen($filename,rb);
  $contents = @fread($fd,$size);
  @fclose ($fd);
  
  echo $contents;
  ?>
  
  使用的时候可以把在html文件里加上
  
  <img src='showpic.php?id=xxx'>
  
  showpic.php及上面的那个php文件,id=xxx是数据库里的记录ID,width是缩略图的宽,height是缩略图的高,请不要同时宽高都上,例如,你要实现宽为50的缩略图,只要<img src='showpic.php?id=xxx'>这样就可以了