加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP上传自动生成缩略图及水印类含代码介绍

发布时间:2022-07-07 14:14:41 所属栏目:PHP教程 来源:互联网
导读:思路很大一部分是原创的,但也有一些是COPY网络的,写得不够规范,还请各位大大不要见笑,同时给小弟些意见。 开始第一步: 创建文件夹,布局: annex:附件(该目录下存放上传的原图片) | smallimg:存放缩略图片 | mark:存放水印图片 include:存放类文
  思路很大一部分是原创的,但也有一些是COPY网络的,写得不够规范,还请各位大大不要见笑,同时给小弟些意见。
 
  开始第一步:
  创建文件夹,布局:
  annex:附件(该目录下存放上传的原图片)
  |— smallimg:存放缩略图片
  |— mark:存放水印图片
  include:存放类文件,字体(本程序代码使用的是:04B_08__.TTF)
  |— upfile.php:集成简单上传,生成缩略图及水印的类文件信息
  |— 04B_08__.TTF:字体文件
  test.php:测试文件
 
  进入第二步:
  代码研究,希望各位能好好看看,小弟也是初学者,同时也希望各位能提出宝贵意见,小弟定会虚心领教的(写得不好不要拿鸡蛋砸偶噢)
 
  -------------------------------------------------------------------------------
  upfile.php
 
  <?php
  class UPImages {
  var annexFolder = "annex";//附件存放点,默认为:annex
  var smallFolder = "smallimg";//缩略图存放路径,注:必须是放在 annexFolder下的子目录,默认为:smallimg
  var markFolder = "mark";//水印图片存放处
  var upFileType = "jpg gif png";//上传的类型,默认为:jpg gif png rar zip
  var upFileMax = 1024;//上传大小限制,单位是“KB”,默认为:1024KB
  var fontType;//字体
  var maxWidth = 500; //图片最大宽度
  var maxHeight = 600; //图片最大高度
 
  function UPImages(annexFolder,smallFolder,includeFolder) {
  this->annexFolder = annexFolder;
  this->smallFolder = smallFolder;
  this->fontType = includeFolder."/04B_08__.TTF";
  }
 
  function upLoad(inputName) {
  imageName = time();//设定当前时间为图片名称
  if(@empty(_FILES[inputName]["name"])) die(error("没有上传图片信息,请确认"));
  name = explode(".",_FILES[inputName]["name"]);//将上传前的文件以“.”分开取得文件类型
  imgCount = count(name);//获得截取的数量
  imgType = name[imgCount-1];//取得文件的类型
  if(strpos(this->upFileType,imgType) === false) die(error("上传文件类型仅支持 ".this->upFileType." 不支持 ".imgType));
  photo = imageName.".".imgType;//写入数据库的文件名
  uploadFile = this->annexFolder."/".photo;//上传后的文件名称
  upFileok = move_uploaded_file(_FILES[inputName]["tmp_name"],uploadFile);
  if(upFileok) {
  imgSize = _FILES[inputName]["size"];
  kSize = round(imgSize/1024);
  if(kSize > (this->upFileMax*1024)) {
  @unlink(uploadFile);
  die(error("上传文件超过 ".this->upFileMax."KB"));
  }

  test.php
  <?php
  annexFolder = "annex";
  smallFolder = "smallimg";
  markFolder = "mark";
  includeFolder = "include";
 
  require("./".includeFolder."/upfile.php");
  img = new UPImages(annexFolder,smallFolder,includeFolder);
  text = array(www.dwww.cn,"all rights reserved");
  if(@_GET["go"]) {
  photo = img->upLoad("upfile");
  img->maxWidth = img->maxHeight = 350;//设置生成水印图像值
  img->toFile = true;
  newSmallImg = img->smallImg(photo);
  newMark = img->waterMark(photo,text);
  echo "<img src='".newSmallImg."' border='0'><br><br>";
  echo "<img src='".newMark."' border='0'><br><br>";
  echo "<a href='./test.php'>继续上传</a>";
  } else {
  ?>
  <form method="post" action="./test.php?go=go" enctype="multipart/form-data">
  <input type="file" name="upfile"><br><br>
  <input type="submit" value="上传">
  </form>
  <?php
  }
  ?>。

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读