PHP 上传图片,生成水印,支持文字, gif, png
- //admin_upfile.php
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php
//这里上传 $upsize判断上传文件的大小
$uppath = isset($_REQUEST["upPath"]) ? $_REQUEST["upPath"] : "/attached/"; //文件上传路径
$formName = isset($_REQUEST["formName"]) ? $_REQUEST["formName"] : $_REQUEST["formName"]; //回传到上页面编辑框所在Form的Name
$editName = isset($_REQUEST["editName"]) ? $_REQUEST["editName"] : $_REQUEST["editName"]; //回传到上页面编辑框的Name
//转换根目录的路径
if (strpos($uppath, "/") == ) {
$i = ;
$thpath = $_SERVER["SCRIPT_NAME"];
$thpath = substr($thpath, , strlen($thpath));
while (strripos($thpath, "/") !== false) {
$thpath = substr($thpath, strpos($thpath, "/") + , strlen($thpath));
$i = ++$i;
} $pp = "";
for ($j = ; $j < $i; ++$j) {
$pp .="../";
} $uppaths = $pp . substr($uppath, , strlen($thpath));
}
$filename = date("y-m");
if (is_dir($uppaths . $filename) != TRUE)
mkdir($uppaths . $filename, );
// if(is_dir($filename."/".$ctime)!=TRUE) mkdir($filename."/".$ctime,0777); $f = $_FILES['file1']; /*if ($f["type"] != "image/gif" && $f["type"] != "image/pjpeg" && $f["type"] != "image/jpeg" && $f["type"] != "image/x-png") {
echo "<script>alert('只能上传图片格式的文件');window.close()</script>";
//echo $f['type'];
return false;
}
*/ //获得文件扩展名
$temp_arr = explode(".", $f["name"]);
$file_ext = array_pop($temp_arr);
$file_ext = trim($file_ext);
$file_ext = strtolower($file_ext); //新文件名
$new_file_name = md5(date("YmdHis") . '_' . rand(, )) . '.' . $file_ext; $dest = $uppaths . $filename . "/" . $new_file_name; //设置文件名为日期加上文件名避免重复 上传目录
$dest1 = $uppath . $filename . "/" . $new_file_name; //设置文件名为日期加上文件名避免重复 $image_size = getimagesize($f['tmp_name']);
$r = move_uploaded_file($f['tmp_name'], $dest);
if($r){
$uptypes=array(
'image/jpg',
'image/jpeg',
'image/png',
'image/pjpeg',
'image/gif',
'image/bmp',
'image/x-png'
);
$max_file_size=; //上传文件大小限制, 单位BYTE
$destination_folder="attached/"; //上传文件路径
$watermark=; //是否附加水印(1为加水印,其他为不加水印);
$watertype=; //水印类型(1为文字,2为图片)
$waterposition=; //水印位置(1为左下角,2为右下角,3为左上角,4为右上角,5为居中);
$waterstring="Thinfo.org"; //水印字符串
$waterimg="wart.png"; //水印图片
$imgpreview=; //是否生成预览图(1为生成,其他为不生成);
$imgpreviewsize=/; //缩略图比例
if($watermark==)
{
$iinfo=getimagesize($dest,$iinfo); $nimage=imagecreatetruecolor($image_size[],$image_size[]);
$white=imagecolorallocate($nimage,,,);
$black=imagecolorallocate($nimage,,,);
$red=imagecolorallocate($nimage,,,);
imagefill($nimage,,,$white);
switch ($iinfo[])
{
case :
$simage =imagecreatefromgif($dest);
break;
case :
$simage =imagecreatefromjpeg($dest);
break;
case :
$simage =imagecreatefrompng($dest);
break;
case :
$simage =imagecreatefromwbmp($dest);
break;
default:
die("不支持的文件类型");
exit;
}
imagecopy($nimage,$simage,,,,,$image_size[],$image_size[]);
//imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white);
switch($watertype)
{
case : //加水印字符串
//imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
break;
case : //加水印图片
$simage1 =imagecreatefrompng('wart.png');
imagecopy($nimage,$simage1,$image_size[]-,$image_size[]-,,,,);
imagedestroy($simage1);
break;
}
switch ($iinfo[])
{
case :
//imagegif($nimage, $destination);
imagejpeg($nimage, $dest);
break;
case :
imagejpeg($nimage, $dest);
break;
case :
imagepng($nimage, $dest);
break;
case :
imagewbmp($nimage, $dest);
//imagejpeg($nimage, $destination);
break;
}
//覆盖原上传文件
imagedestroy($nimage);
imagedestroy($simage);
} }
if ($f['size'] > ) { echo "<script>window.opener.document." . $formName . "." . $editName . ".value='" . $dest1 . "'</script>";
echo "<script>alert('图片上传成功');window.close()</script>";
}
?>
</html>admin_upload.php
<html>
<head>
<title>图片上传</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<?php
$uppath=isset($_REQUEST["upPath"])?$_REQUEST["upPath"]."/":"/attached/"; //文件上传路径
$formName=isset($_REQUEST["formName"])?$_REQUEST["formName"]:"myform"; //回传到上页面编辑框所在Form的Name
$editName=isset($_REQUEST["editName"])?$_REQUEST["editName"]:"pic"; //回传到上页面编辑框的Name
//示例
/* <form name="myform">
<input name="pic" Type="text" size="50" maxlength="50" >
<input type="button" name="Submit" value="点击上传图片" onClick="window.open('Admin_upload.php?formName=myform&editName=pic&upPath=/uploadfile','','status=no,scrollbars=no,top=20,left=110,width=420,height=165')">
</form> */
?>
<script language="javascript">
<!--
function mysub()
{
esave.style.visibility="visible";
}
-->
</script>
<style type="text/css">
<!--
.STYLE2 {
font-size: 12pt
}
.STYLE3 {
font-size: 14pt
}
-->
</style>
</head>
<body oncontextmenu='return false' onselectstart="return false" oncopy="return false;" oncut="return false;">
<form name="form1" method="post" action="admin_upfile.php" enctype="multipart/form-data" >
<div id="esave" style="position:absolute; top:18px; left:40px; z-index:10; visibility:hidden">
<TABLE WIDTH= BORDER= CELLSPACING= CELLPADDING=>
<TR>
<td width=?></td>
<TD bgcolor=#ff0000 width="60%"><TABLE WIDTH=% height= BORDER= CELLSPACING= CELLPADDING=>
<TR>
<td bgcolor=#ffffff align=center><font color=red>正在上传文件,请稍候...</font></td>
</tr>
</table></td>
<td width=?></td>
</tr>
</table>
</div>
<table class="Border" width="100%" border="" height="100%" align="center" cellpadding="" cellspacing="" bgcolor="#FFFFFF">
<tr>
<td align="center" class="title" height=""><b><span class="style2 STYLE3">图 片 上 传</span>
<input type="hidden" name="upPath" value="<?=$uppath?>">
<input type="hidden" name="editName" value="<?=$editName?>">
<input type="hidden" name="formName" value="<?=$formName?>">
</b> </td>
</tr>
<tr bgcolor="#E8F1FF">
<td height="" align="center" id="upid">选择文件:
<input type="file" name="file1" size="" class="tx1" value="">
<input type="submit" name="Submit" value="开始上传" class="button" onClick="mysub();">
<br></td>
</tr>
</table>
</form>
</body>
</html>- <input name="pic" type="text" id="pic" size="80" />
- <input type="button" name="Submit" value="点击上传图片" onclick="window.open('admin_upload.php?formName=myform&editName=pic&upPath=/attached','','status=no,scrollbars=no,top=20,left=110,width=420,height=165')" />
PHP 上传图片,生成水印,支持文字, gif, png的更多相关文章
- PHP加水印代码 支持文字和图片水印
PHP加图片水印.文字水印类代码,PHP加水印类,支持文字图片水印的透明度设置.水印图片背景透明.自己写的一个类,因为自己开发的一套CMS中要用到,网上的总感觉用着不顺手,希望大家也喜欢这个类,后附有 ...
- asp.net生成缩略图、文字图片水印
/// <summary> /// 会产生graphics异常的PixelFormat /// </summary> private static PixelFormat[] ...
- 用java实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)
javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置.大小.粗度.翻转.平滑等操作 javaCV图像处理之2:实时视频添加图片水 ...
- 帝国cms更换Ueditor编辑器上传图片加水印
Ueditor安装包,里面有个/php/文件夹,找到Uploader.class.php,这是通用上传类文件找到private function upFile(),这是上传文件的主处理方法,找到122 ...
- 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])
常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...
- Thinkphp图片水印和文字水印
1.Thinkphp图像处理 在TP框架中,我们经常用到图片上传,我最近写了很多关于图片上传的文章,thinkphp图片上传+validate表单验证+图片木马检测+缩略图生成等文章,今天写一下关于图 ...
- .NET中生成水印更好的方法
.NET中生成水印更好的方法 为了保护知识产权,防止资源被盗用,水印在博客.网店等场景中非常常见. 本文首先演示了基于System.Drawing.Image做正常操作.然后基于Direct2D/WI ...
- PHP给图片加上图片水印和文字水印实例
下面给大家分享一下PHP给图片加上图片水印和文字水印实例,这也是网站经常用到的功能,把代码加上去,调用就很简单了. 核心代码: function imageWaterMark($groundImage ...
- iConvert Icons 图标转换生成利器,支持Windows, Mac OS X, Linux, iOS,和Android等系统
这是一款在线图标转换工具,生成的图标支持Windows, Mac OS X, Linux, iOS, 和 Android等主流系统. 可以上传图标文件转化成另一个平台下的图标文件,例如将windows ...
- Java给图片和PDF文件添加水印(图片水印和文字水印)
有时候我们看到的图片或者PDF文件会自动加上水印.分为文字水印和图片水印. ----------------------------图片水印---------------------------- 1 ...
随机推荐
- AR9531的mac地址
root@OpenWrt:/# ifconfigbr-lan Link encap:Ethernet HWaddr 00:11:22:34:56:78 inet addr ...
- kettle新建资源库(4)
工具中找资源库或者CTRL+R
- mysql启动
mysql启动遇到的问题
- yum安装memcache,mongo扩展以及python的mysql模块安装
//启动memcached/usr/local/memcached/bin/memcached -d -c 10240 -m 1024 -p 11211 -u root/usr/local/memca ...
- iostransitiontranslate闪屏问题总结
webkit在绘制页面时会将结构分为各种层,当层足够大时就会变成很大的平铺层.这样一来webkit在每次页面结构发生变化时不需要都渲染整个页面而是渲染对应层了,这对渲染速度来说相当的重要.webkit ...
- box-shadow 阴影
text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着html5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[inset ...
- idea 切换新项目 新窗口 原窗口
选择 file--setting. 在新打开的窗口中选择 Appearance & Behavior--System Settings 点 Confirm window to open pro ...
- onmousedown活用之碰撞效果
通过绝对定位,在页面中随意位置设置两个div; 也就是说div 是拖动的框,div1和div2是被触碰的框; <!DOCTYPE html> <html> <head&g ...
- 关于oracle数据库(10)函数
分析函数,用于统计排名 语法:函数名() over(order by 排序字段 asc | desc) row_number() 无论值是否相等,生成连续的行号 -- 1,2,3,4, select ...
- JPA 系列教程13-复合主键-@EmbeddedId+@Embeddable
复合主键 指多个主键联合形成一个主键组合 需求产生 比如航线一般是由出发地及目的地确定,如果要确定唯一的航线就可以用出发地和目的地一起来表示 ddl语句 同复合主键-2个@Id和复合主键-2个@Id+ ...