PHP上传图片,以及为图片添加简单…

原创 2016年05月31日 14:20:58
// 上传文件类型列表
$uptypes = array (
'image/jpg',
'image/png',
'image/jpeg',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png'
);
$max_file_size = 20000000;                 //上传文件大小限制,单位BYTE
$destination_folder = '/media/img/icon/';     //上传文件路径
$watermark = 2;                         //是否附加水印(1为加水印,其他为不加水印);
$watertype = 1;                         //水印类型(1为文字,2为图片)
$waterposition = 1;                     //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
$waterstring = "@Leo-Jen"; //水印字符串
$waterimg = "xplore.gif";                //水印图片
$imgpreview = 1;                         //是否生成预览图(1为生成,其他为不生成);
$imgpreviewsize = 1 / 2;                 //缩略图比例
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
//判断是否有上传文件
if (is_uploaded_file($_FILES['upfile']['tmp_name'])) {
$upfile = $_FILES['upfile'];
$name = $upfile['name'];             //文件名
$type = $upfile['type'];             //文件类型
$size = $upfile['size'];             //文件大小
$tmp_name = $upfile['tmp_name'];     //临时文件
$error = $upfile['error'];         //出错原因
if ($max_file_size < $size) {        //判断文件的大小
echo '上传文件太大';
exit ();
}
if (!in_array($type, $uptypes)) {        //判断文件的类型
echo '上传文件类型不符' . $type;
exit ();
}
if (!file_exists($destination_folder)) {
mkdir($destination_folder);
}
$pinfo = pathinfo($name);
$ftype = $pinfo['extension'];
if (file_exists("media/img/icon/" .  time() . "." . $ftype)) {
//             echo $_FILES["upfile"]["name"] . " already exists. ";
} else {
move_uploaded_file($_FILES["upfile"]["tmp_name"], "media/img/icon/" . time() . "." . $ftype);
//             echo "Stored in: " . "media/img/" . $_FILES["upfile"]["name"];
}
$destination = "media/img/icon/" . time() . "." . $ftype;
//         if (file_exists($destination) ) {
//             echo "同名的文件已经存在了";
//             exit ();
//         }
//         if (!move_uploaded_file($tmp_name, $destination)) {
//             echo "移动文件出错";
//             exit ();
//         }
$pinfo = pathinfo($destination);
$fname = $pinfo['basename'];
$image_size = getimagesize("media/img/icon/" . $fname);
//         echo " 已经成功上传
文件名: " . $destination_folder . $fname . "
";
//         echo " 宽度:" . $image_size[0];
//         echo " 长度:" . $image_size[1];
//         echo "
大小:" . $size. " bytes";
 
if ($watermark == 1) {
$iinfo = getimagesize($destination, $iinfo);
$nimage = imagecreatetruecolor($image_size[0], $image_size[1]);
$white = imagecolorallocate($nimage, 255, 255, 255);
$black = imagecolorallocate($nimage, 0, 0, 0);
$red = imagecolorallocate($nimage, 255, 0, 0);
imagefill($nimage, 0, 0, $white);
switch ($iinfo[2]) {
case 1 :
$simage = imagecreatefromgif($destination);
break;
case 2 :
$simage = imagecreatefromjpeg($destination);
break;
case 3 :
$simage = imagecreatefrompng($destination);
break;
case 6 :
$simage = imagecreatefromwbmp($destination);
break;
default :
die("不支持的文件类型");
exit;
}
imagecopy($nimage, $simage, 0, 0, 0, 0, $image_size[0], $image_size[1]);
imagefilledrectangle($nimage, 1, $image_size[1] - 15, 80, $image_size[1], $white);
switch ($watertype) {
case 1 : //加水印字符串
imagestring($nimage, 2, 3, $image_size[1] - 15, $waterstring, $black);
break;
case 2 : //加水印图片
$simage1 = imagecreatefromgif("xplore.gif");
imagecopy($nimage, $simage1, 0, 0, 0, 0, 85, 15);
imagedestroy($simage1);
break;
}
switch ($iinfo[2]) {
case 1 :
//imagegif($nimage, $destination);
imagejpeg($nimage, $destination);
break;
case 2 :
imagejpeg($nimage, $destination);
break;
case 3 :
imagepng($nimage, $destination);
break;
case 6 :
imagewbmp($nimage, $destination);
//imagejpeg($nimage, $destination);
break;
}
//覆盖原上传文件
imagedestroy($nimage);
imagedestroy($simage);
}
// if ($imgpreview == 1) {
//            echo "
图片预览:
";
// echo "PHP上传图片,以及为图片添加简单的水印demo echo " alt=\"图片预览:\r文件名:" .$destination_folder . $fname . "\r上传时间:\">";
// }
echo $destination_folder . $fname;
}
}
}

php实现上传图片到数据库

一般我们上传图片采用的传统方式是将图片保存在服务器本机文件夹里。这里我就简单介绍一下将图片直接存储到数据库里的方法实现。 mysql数据库提供了Blob类型用于存储大量数据,BLOB有四种类型,...
  • SoulArbiter
  • SoulArbiter
  • 2017年12月05日 20:04
  • 280

android上传图片到PHP后台全过程

PS:便宜的服务器可是会不定时的坑你一把。      今天在修改app的一些交互以及重构代码。一切都是那么顺利,啪啪啪,runing,测试没问题,再啪啪啪。。。 突然,测试上传头像的时候,老是连接超时...
  • caiwenfeng_for_23
  • caiwenfeng_for_23
  • 2015年08月02日 22:22
  • 13404

php上传图片完整代码

  • caiandyong
  • caiandyong
  • 2015年08月27日 17:07
  • 534

ThinkPHP+DWZ(xhEditor)上传图片

DWZ使用xhEditor作为编辑器。 一、HTML页Form无需添加 enctype="multipart/form-data" 也无需添加别的脚本 二、PHP页 //上传 pub...
  • leejianjun
  • leejianjun
  • 2015年09月26日 09:43
  • 1328

PHP无法上传图片的解决方法

PHP无法解决图片的解决方法今天安徽的朋友告诉我她网站无法上传图片,环境是WIN2012的IIS+php首先要知道原来好使的,更换服务器后就不好用了 这种情况一般就是环境的原因了,首先检测GD库是否...
  • fengyu19880219
  • fengyu19880219
  • 2015年09月09日 10:26
  • 1628

php完整图片上传代码(上传到本地)

我们的目标效果:网站后台图片上传,点击上传选择图片,上传成功之后自动把图片名称放在input文本框内!! 先说使用方法吧:(代码在下方自行复制,共三个demo页) 首先,最好单独创建个...
  • waiwai021
  • waiwai021
  • 2017年04月07日 11:56
  • 324

php 中使用cURL发送get/post请求,上传图片,批处理

cURL是利用url语法规定传输文件和数据的工具。php中有curl拓展,一般用来实现网络抓取,模拟发送get   post请求,文件上传。   在php中建立curl的基本步骤如下:   1 初...
  • ximenxiafeng
  • ximenxiafeng
  • 2015年05月23日 13:06
  • 3045

php判断上传的文件图片是否为空

php判断上传到php页面的图片和文件等是否为空,看是否上传了 if(($_FILES["addimage"]["size"]>0)) { } 其中,addi...
  • u011410529
  • u011410529
  • 2014年09月21日 20:19
  • 2058

php完整图片上传代码

我们的目标效果:网站后台图片上传,点击上传选择图片,上传成功之后自动把图片名称放在input文本框内!! 先说使用方法吧:(代码在下方自行复制,共三个demo页) 首先,最好单独创建个文件夹把...
  • WW_CSDN
  • WW_CSDN
  • 2015年01月26日 16:31
  • 6219

Ueditor上传图片出现未知错误或者保存图片失败

很久之前去百度下载了一个ueditor富文本编辑器,用于自己的网站文字的排版。觉得ueditor和国外的那些编辑器相比起来,更加适合我们中国的站长,也更加容易使用,界面很清新,我也表示很喜欢。 ...
  • leyuxinsi
  • leyuxinsi
  • 2013年01月04日 20:26
  • 1494
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP上传图片,以及为图片添加简单…
举报原因:
原因补充:

(最多只允许输入30个字)