send.html
<html> <head> <title>File Uploader</title><meta charset="utf-8"> </head> <body> <h3>File Upload</h3> Select a file to upload:<br> <form action="img_receive.php" method="post" enctype="multipart/form-data"> <input type="file" name="upfile" size="45"> <br> <input type="submit" value="Upload File"> </form> </body> </html>
接收 img_receive.php
<meta charset="utf-8"> <?php //上传文件类型列表 $uptypes=array( 'image/jpg', 'image/jpeg', 'image/png', 'image/pjpeg', 'image/gif', 'image/bmp', 'image/x-png' ); $max_file_size=2000000; //上传文件大小限制, 单位BYTE $destination_folder="up/"; //上传文件路径 $watermark=1; //是否附加水印(1为加水印,其他为不加水印); $watertype=1; //水印类型(1为文字,2为图片) $waterposition=1; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中); $waterstring="http://jquery.com"; //水印字符串 $waterimg="xplore.gif"; //水印图片 $imgpreview=1; //是否生成预览图(1为生成,其他为不生成); $imgpreviewsize=1/2; //缩略图比例 if ($_SERVER['REQUEST_METHOD'] == 'POST') { if (!is_uploaded_file($_FILES["upfile"]['tmp_name'])) //是否存在文件 { echo "图片不存在!"; exit; } $file = $_FILES["upfile"]; if($max_file_size < $file["size"]) //检查文件大小 { echo "文件太大!"; exit; } if(!in_array($file["type"], $uptypes)) //检查文件类型 { echo "文件类型不符!".$file["type"]; exit; } if(!file_exists($destination_folder))//检查目标文件是否存在 { mkdir($destination_folder); } $filename=$file["tmp_name"];//文件上传的临时文件名 $image_size = getimagesize($filename);//专业获取图片大小的方法是一个数组 $pinfo=pathinfo($file["name"]);//获取客户端储存文件的地址,是一个数组 $ftype=$pinfo['extension'];//从该数组中获取文件的扩展名 $destination = $destination_folder.time().".".$ftype;//目标文件起名为当前时间+扩展名 if (file_exists($destination) && $overwrite != true) { echo "同名文件已经存在了"; exit; } if(!move_uploaded_file ($filename, $destination)) { echo "移动文件出错"; exit; } $pinfo=pathinfo($destination);//获取目标文件地址 $fname=$pinfo[basename];//获取基础文件名,包括了扩展名 echo " <font color=red>已经成功上传</font><br>文件名: <font color=blue>".$destination_folder.$fname."</font><br>"; echo " 宽度:".$image_size[0]; echo " 长度:".$image_size[1]; echo "<br> 大小:".$file["size"]." bytes"; if($watermark==1)//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 "<br>图片预览:<br>"; echo "<img src=\"".$destination."\" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize); echo " alt=\"图片预览:\r文件名:".$destination."\r上传时间:\">"; } } ?>
相关推荐
PHP上传类+水印(文字/图片)+缩略图 该类包含了上传文件自定义类型、图片文件开启缩略图以及开启文字水印和图片水。 直接调用canupload方法即可
php上传图片自动随机命名,生成等比缩略图+生成水印图片
图片加水印后上传至对象存储,亲测可用。 环境:php语言,qcloud/cos-sdk-v5 COS上传扩展。需要安装gd库。 注意,腾讯云服务函数不可用(腾讯云php环境没有安装gd库),需要换成第三方图片处理扩展
php图片文件上传 水印缩略图php图片文件上传 水印缩略图
PHP图片处理(上传、加水印、缩略图),对图片的处理
php实现上传图片并能控制是否加水印 php 上传图片 php加水印 上传图片 加水印 功能测试完全
有详细的说明,一直没在csdn上传过东西,这次要不是为了点分真是没什么心思传这玩意. 我的风格是以最少的代码去实现某一功能,或是以最简洁的方式去写一段代码.
php上传图片添加文字或者图片水印的实例可以配置水印位置
功能:PHP图片水印 (水印支持图片或文字) $groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式; $waterImage 图片水印,即作为水印的图片,暂只支持GIF,JPG,PNG格式; $...
PHP图片上传裁切水印程序PHP图片上传裁切水印程序
php多张图片上传源代码,可以上传单张 或者多张图片,带加水印
单个PHP文件上传,图片上传,带水印,php代码
php上传类,包含对图片进行缩略图,打水印处理,注释写的很全,值不值下了你就知道,希望对大家有帮助
PHP上传类,可对上传或已存在的图片进行加水印、缩放等操作。水印支持图片水印和文字水印,水印位置有九个
贡献一个跟随了我多年的PHP图片上传、加水印及生成清晰缩略图等综合处理类,简单用法在类文件里面有说明,其他方法调用请看代码.
本文件包支持php的kindeditor4.1.10上传图片水印功能。
* 功能:用于文本编辑器kindeditor本地上传图片加水印,可以开启需添加水印的图片的最小长宽。 */ 添加文件 admin/admin_mark.php admin/templates/mark/ data/mark/ data/mark/cache_mark.php admin/...
PHP上传多图片,带有生成缩略图,自动加水印功能的类
我们上传到网站的图片,防止被别人偷取,都可以在图片上加上水印,而这个class正是这个用途
PHP上传图片 生成水印图片 生成缩略图的实例 很实用,一看就懂