0

0

php 图片上传代码(具有生成缩略图与增加水印功能)

php中文网

php中文网

发布时间:2016-06-13 09:48:21

|

1456人浏览过

|

来源于php中文网

原创

这款图片上传源代码是一款可以上传图片并且还具有给上传的图片生成缩略图与增加水印功能哦,可以说是一款完美的图片上传类哦。

SSP网店系统单用户免费普及版
SSP网店系统单用户免费普及版

前后台订单管理页添加商品缩图显示 后台系统设置可直接对商品缩图大小进行设置 去掉商品图片水印功能 上传一张图片,可同时生成列表页缩图及商品详细页缩图,以不同的大小满足页面不同的需要 商品收藏添加批量删除功能 修改商品详细页会员等级显示BUG 优化缩图生成功能(注:因此次优化已更换上传内核,所以有可能会影响已上传商品图片数据) 加入简繁转换 前台订单管理添加单订单在线支付功能 修正VS081样式前台

下载

php教程 图片上传代码(具有生成缩略图与增加水印功能)
这款图片上传源代码是一款可以上传图片并且还具有给上传的图片生成缩略图与增加水印功能哦,可以说是一款完美的图片上传类哦。

class upfile {  public $filepath = "www.bKjia.c0m/"; //上传文件存放文件夹  public $filesize = 1000000; //允许上传的大小  //如果要修改允许上传文件的类型  请搜索 【 switch ($upfiletype) { //文件类型  】  public $reimagesize = array (   true, //是否生成缩略图   400, //缩略图宽   300,//缩略图高   "" //缩略图存放文件夹 如果为空和当前要生成缩略图的文件在同一目录 文件前缀r_  ); //是否生成缩略图 array(生成或不生成,缩略图宽,缩略图高,存放文件夹); 注意:存放文件夹后跟 '/'  public $india = true; //是否打水印 true打 false不打  public $indiaimage = ""; //水印图片地址为空则不打图片水印 如果有文字水印建议不要开启图片水印  public $indiaimagex = 100; //图片距离图片左边距离  public $indiaimagey = 10; //图片距离图片上面距离  public $indiatext = "www.bKjia.c0m"; //水印文字  public $fontsize = 6; //水印文字大小,1最小6最大  public $indiatextx = 10; //文字距离图片左边距离  public $indiatexty = 10; //文字距离图片上面距离  public $r = 250; //图片颜色三原色 $r红  public $g = 250; //$g绿  public $b = 250; //$b蓝  public $indiapath = ""; //加了水印的图片保存路径,如果为空就直接替代原来的图片  //开始上传处理  function uploadfile($upfile) {   if ($upfile == "") {    die("uploadfile:参数不足");   }   if (!file_exists($this->filepath)) {    mkdir($this->filepath);   }   $upfiletype = $upfile['type'];   $upfilesize = $upfile['size'];   $upfiletmpname = $upfile['tmp_name'];   $upfilename = $upfile['name'];   $upfileerror = $upfile['error'];   if ($upfilesize > $this->filesize) {    return false; //文件过大   }   switch ($upfiletype) { //文件类型    case 'image/jpeg' :     $type = 'jpg';     break;    case 'image/pjpeg' :     $type = 'jpg';     break;    case 'image/png' :     $type = 'png';     break;    case 'image/gif' :     $type = 'gif';     break;   }   if (!isset ($type)) {    return false; //不支持此类型   }   if (!is_uploaded_file($upfiletmpname) or !is_file($upfiletmpname)) {    return false;    ; //文件不是经过正规上传的;   }   if ($this->upfileerror != 0) {    return false; //其他错误   }   if ($this->upfileerror == 0) {    if (!file_exists($upfiletmpname)) {     return false; //临时文件不存在    } else {     $filename = date("ymdhis", time() + 3600 * 8); //图片已当前时间命名     $filename = $this->filepath . $filename . "." . $type;     if (!move_uploaded_file($upfiletmpname, $filename)) {      return false; //文件在移动中丢失     } else {      if ($this->india == true) {       $this->goindia($filename, $type,true);      } else {       if ($this->reimagesize[0] == true) {        $this->goreimagesize($filename, $type);       } else {        return true; //上传成功!        unlink($upfiletmpname);       }      }     }    }   }  }  //添加水印处理  function goindia($filename, $filetype,$reimage=false) {   if (!file_exists($filename)) {    $this->reerror(7); //要添加水印的文件不存在   } else {    if ($filetype == "jpg") {     $im = imagecreatefromjpeg($filename);    } else     if ($filetype == "gif") {      $im = imagecreatefromgif($filename);     } else      if ($filetype == "png") {       $im = imagecreatefrompng($filename);      }    if ($this->indiatext != "") { //如果水印文字不为空     $textcolor = imagecolorallocate($im, $this->r, $this->g, $this->b); //设置文字颜色     imagestring($im, $this->fontsize, $this->indiatextx, $this->indiatexty, $this->indiatext, $textcolor); //将文字写入图片    }    if ($this->indiaimage != "") {//如果水印图片不为空     $indiaimagetype = getimagesize($this->indiaimage);     $logow = $indiaimagetype[0]; //得到水印图片的宽     $logoh = $indiaimagetype[1]; //得到水印图片的高     switch ($indiaimagetype[2]) { //判断水印图片的格式      case 1 :       $indiaimagetype = "gif";       $logo = imagecreatefromgif($this->indiaimage);       break;      case 2 :       $indiaimagetype = "jpg";       $logo = imagecreatefromjpeg($this->indiaimage);       break;      case 3 :       $indiaimagetype = "png";       $logo = imagecreatefrompng($this->indiaimage);       break;     }     imagealphablending($im, true); //打开混色模式     imagecopy($im, $logo, $this->indiaimagex, $this->indiaimagey, 0, 0, $logow, $logoh);     imagedestroy($im);     imagedestroy($logo);    }   }   if ($this->indiapath == "") { //如果水印存放地址不为空    if ($filetype == "jpg") {     imagejpeg($im, $filename);    } else     if ($filetype == "gif") {      imagegif($im, $filename);     } else      if ($filetype == "png") {       imagepng($im, $filename);      }    if($reimage == true){     $this->goreimagesize($filename,$filetype);    }else{     return true; //添加水印成功    }   } else {    if (!file_exists($this->indiapath)) {     mkdir($this->indiapath);     return false; //请重新上传    } else {     $indianame = basename($filename);     $indianame = $this->indiapath . $indianame;     if ($filetype == "jpg") {      imagejpeg($im, $indianame);     } else      if ($filetype == "gif") {       imagegif($im, $indianame);      } else       if ($filetype == "png") {        imagepng($im, $indianame);       }     if($reimage == true){      $this->goreimagesize($indianame,$filetype);      echo $indianame;     }else{      return true; //添加水印成功     }    }   }  }  function goreimagesize($filename, $filetype) {   if (!file_exists($filename)) {    return false; //要生成缩略图的图片不存在   } else {    if ($filetype == 'jpg') {     $reimage = imagecreatefromjpeg($filename);    }    elseif ($filetype == 'png') {     $reimage = imagecreatefrompng($filename);    } else     if ($filetype == 'gif') {      $reimage = imagecreatefromgif($filename);     }    if (isset ($reimage)) {     $srcimagetype = getimagesize($filename);     $srcimagetypew = $srcimagetype[0]; //得到原始图片宽度     $srcimagetypeh = $srcimagetype[1]; //得到原始图片高度     $reim = imagecreatetruecolor($this->reimagesize[1], $this->reimagesize[2]);     imagecopyresized($reim, $reimage, 0, 0, 0, 0, $this->reimagesize[1], $this->reimagesize[2], $srcimagetypew, $srcimagetypeh);     $reimagepath = $this->reimagesize[3];     if ($reimagepath != "") { //如果存放水印地址不为空      if (!file_exists($reimagepath)) {       mkdir($reimagepath);      } else {       $reimagename = basename($filename);       $reimagename = $reimagepath . "r_" . $reimagename;       if ($filetype == "gif")        imagegif($reim, $reimagename);       else        if ($filetype == "jpg")         imagejpeg($reim, $reimagename);        else         if ($filetype == "png")          imagepng($reim, $reimagename);       return true;      }     } else {      $filename = basename($filename);      if($this->indiapath == ""){       $filename = $this->filepath."r_" . $filename;      }else{       $filename = $this->indiapath."r_" . $filename;      }      if ($filetype == "gif")       imagegif($reim, $filename);      else       if ($filetype == "jpg")        imagejpeg($reim, $filename);       else        if ($filetype == "png")         imagepng($reim, $filename);      return true;     }    }   }  } } if ($_post["submit"]) {  $file = $_files['uploadfile'];  $upfile = new upfile();  echo $upfile->uploadfile($file); } ?>        
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

2

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

0

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

2

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

6

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

22

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

3

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

2

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

1

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.1万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号