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上传类+水印(文字/图片)+缩略图”功能提供了完整的解决方案,让我们来详细探讨其中涉及的知识点。 首先,**文件上传**是网页应用中必不可少的部分,它允许用户将本地文件传送到服务器。在PHP中,我们...
在PHP开发中,图片上传、自动缩略图生成和水印添加是常见的需求,尤其在构建网站或Web应用时。这个“php上传图片自动缩略图+水印类”提供了这些功能,使得开发者能够轻松处理用户上传的图片。下面将详细讲解其中涉及...
图片加水印后上传至对象存储,亲测可用。 环境:php语言,qcloud/cos-sdk-v5 COS上传扩展。需要安装gd库。 注意,腾讯云服务函数不可用(腾讯云php环境没有安装gd库),需要换成第三方图片处理扩展
在IT行业中,多文件上传和水印处理是常见的需求,特别是在网站内容管理和媒体分享平台。本文将详细解析如何使用PHP实现这两个功能,并结合代码注释进行深入讲解。 首先,我们来了解一下多文件上传。在PHP中,我们...
如果你需要添加图片水印,可以使用`SetWatermarkImage`方法,传入图片路径和透明度: ```php $mpdf->SetWatermarkImage('path/to/watermark.png', 0.2); // 图片水印,第二个参数是透明度 ``` 5. 读取和合并PDF ...
在PHP编程领域,文件上传、图像处理和添加水印是常见的功能需求,尤其在网站开发中,例如用户头像上传、商品图片展示等场景。这个"php上传+缩略图+打水印类"提供了完整的解决方案,使得开发者可以快速集成这些功能到...
PHP图片处理(上传、加水印、缩略图),对图片的处理
在PHP中实现图片上传并添加水印是一项常见的...综上所述,实现PHP图片上传并加水印的功能涉及多个环节,包括文件上传、图像处理和错误处理等。在实际应用中,应结合具体需求进行优化和调整,确保系统的稳定性和安全性。
// 图片上传目录 // 移动文件到指定目录 if(move_uploaded_file($temp_file, $upload_dir . $file_name)) { echo "文件上传成功"; } else { echo "文件上传失败"; } } ?> ``` 接下来是水印的添加。在PHP中...
这个名为"PHP图片上传、加水印及生成清晰缩略图等综合处理类"的资源提供了一个全面的解决方案,它能帮助开发者高效地完成这些操作。下面将详细介绍这个类的主要功能和使用方法。 首先,图片上传是网页应用中必不可...
在PHP中处理多张图片上传并添加水印是一项常见的任务,尤其在开发涉及用户交互的Web应用时。本文将深入探讨如何实现这个功能,包括图片上传的步骤、处理多文件上传的方法以及如何在图片上添加水印。 1. **图片上传...
这个"PHP图片上传+旋转+缩略+存储"的压缩包文件包含了两个关键的PHP脚本:imgwatermark.php和index.php,它们分别可能用于实现上述功能。 1. **图片上传**: 图片上传通常涉及到文件上传表单的设计,使用`<form>`...
功能:PHP图片水印 (水印支持图片或文字) $groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式; $waterImage 图片水印,即作为水印的图片,暂只支持GIF,JPG,PNG格式; $...
这个压缩包文件很可能包含了一个已经配置好的PHP环境,以及针对KindEditor4.1.10版本的图片上传和水印处理的代码。 首先,让我们详细解释一下“上传图片水印功能”。在网站中,有时我们需要在用户上传的图片上添加...
这个名为"PHP图片上传裁切水印程序"的项目,显然是为了帮助开发者实现这些功能而设计的。下面我们将详细探讨相关的PHP图像处理技术。 1. **图片上传**:在Web应用中,图片上传通常涉及用户通过表单提交图片文件,...
总结,通过PHP的GD库,我们可以轻松地在上传的图片上添加图片或文字水印,并灵活配置水印的位置。这不仅可以增强网站的版权保护,也能增加品牌形象的曝光。在实际应用中,可以根据项目需求进行更复杂的定制,如调整...
在PHP中实现图片和文字水印是一项常见的任务,特别是在网站开发中,为了保护版权或增加品牌标识,我们经常需要在上传的图片上添加水印。本文将详细介绍如何使用PHP实现这一功能。 首先,我们需要理解水印的基本概念...
在PHP中实现图片上传并添加水印是一项常见的需求,尤其在网站开发中,为了保护版权或者增加品牌标识,经常需要在用户上传的图片上添加水印。本教程将详细介绍如何利用PHP实现这一功能。 首先,我们需要理解上传图片...
在PHP中进行单个文件上传,尤其是图片上传并添加水印,是常见的Web开发任务,主要涉及以下几个核心知识点: 1. **HTTP表单与文件上传**:首先,我们需要在HTML中创建一个`<form>`标签,设置`enctype="multipart/...
在PHP编程领域,批量添加水印是一项常见的任务,尤其对于网站运营者来说,为了保护自己的版权或者提升品牌形象,经常需要在上传的图片上批量添加文字或图像水印。本教程将详细讲解如何使用PHP实现这一功能,同时针对...