1. //admin_upfile.php
  2. <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

  3. <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>
    1. <input name="pic" type="text" id="pic" size="80" />
    2. <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的更多相关文章

  1. PHP加水印代码 支持文字和图片水印

    PHP加图片水印.文字水印类代码,PHP加水印类,支持文字图片水印的透明度设置.水印图片背景透明.自己写的一个类,因为自己开发的一套CMS中要用到,网上的总感觉用着不顺手,希望大家也喜欢这个类,后附有 ...

  2. asp.net生成缩略图、文字图片水印

    /// <summary> /// 会产生graphics异常的PixelFormat /// </summary> private static PixelFormat[] ...

  3. 用java实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)

    javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置.大小.粗度.翻转.平滑等操作 javaCV图像处理之2:实时视频添加图片水 ...

  4. 帝国cms更换Ueditor编辑器上传图片加水印

    Ueditor安装包,里面有个/php/文件夹,找到Uploader.class.php,这是通用上传类文件找到private function upFile(),这是上传文件的主处理方法,找到122 ...

  5. 逆天通用水印支持Winform,WPF,Web,WP,Win10。支持位置选择(9个位置 ==》[X])

    常用技能:http://www.cnblogs.com/dunitian/p/4822808.html#skill 逆天博客:http://dnt.dkil.net 逆天通用水印扩展篇~新增剪贴板系列 ...

  6. Thinkphp图片水印和文字水印

    1.Thinkphp图像处理 在TP框架中,我们经常用到图片上传,我最近写了很多关于图片上传的文章,thinkphp图片上传+validate表单验证+图片木马检测+缩略图生成等文章,今天写一下关于图 ...

  7. .NET中生成水印更好的方法

    .NET中生成水印更好的方法 为了保护知识产权,防止资源被盗用,水印在博客.网店等场景中非常常见. 本文首先演示了基于System.Drawing.Image做正常操作.然后基于Direct2D/WI ...

  8. PHP给图片加上图片水印和文字水印实例

    下面给大家分享一下PHP给图片加上图片水印和文字水印实例,这也是网站经常用到的功能,把代码加上去,调用就很简单了. 核心代码: function imageWaterMark($groundImage ...

  9. iConvert Icons 图标转换生成利器,支持Windows, Mac OS X, Linux, iOS,和Android等系统

    这是一款在线图标转换工具,生成的图标支持Windows, Mac OS X, Linux, iOS, 和 Android等主流系统. 可以上传图标文件转化成另一个平台下的图标文件,例如将windows ...

  10. Java给图片和PDF文件添加水印(图片水印和文字水印)

    有时候我们看到的图片或者PDF文件会自动加上水印.分为文字水印和图片水印. ----------------------------图片水印---------------------------- 1 ...

随机推荐

  1. MATLAB制作符合IEEE标准的图插入Latex

    1.MATLAB最好保存为eps格式,虽然IEEE也支持png等其他格式,但是MATLAB在保存为png格式时,很容易在后期插图时,出现分辨率不足等问题. 2. MATLAB在save as图片的时候 ...

  2. Python之迭代器&装饰器&生成器&正则

    1.迭代器 迭代器是访问数据集合的一种方式,它只能从集合的第一个元素开始顺序访问,直到最后一个元素结束.类似于linux里的cat命令,只能挨行读取文本内容,不可以跳到中间或者尾部读取(不会把所有的数 ...

  3. JSP的改动需要重启应用服务器才能生效?

    PLM的版本由2013版升级到2016版,部署到应用服务器tomEE的war包也更新了,今天在Linux服务器上hot fix一个JSP页面的时候发现改动没有生效,要重启tomEE才生效,纳闷了一下才 ...

  4. 用Bash脚本将Linux普通用户添加为系统管理员

    将Linux普通用户添加为系统管理员在Gnome或KDE这样强大与完善的桌面环境下是非常简单的事情,一般来说在用户设置的对话框里就直接有相应选项.不过,出于简洁与高效的风格,自己目前并未使用这些高端但 ...

  5. hdu 1408 盐水的故事

    Problem Description 挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下:然后滴二滴,停一下:再滴三滴,停一下...,现在有一个问题:这瓶盐水一共有VUL毫升,每一滴是D毫升,每一滴 ...

  6. Java I/O 操作的一些基本知识

    1.文件类:File ,也是唯一的单独的文件类.可以对文件进行操作.其方法有:exists(),delete(),isDirectory(),createNewFile(),getName(),get ...

  7. 使用InternetReadFile时要注意读取完整数据

    使用这个api读取数据后,即使数据不完整,该函数不会报任何错,GetLastError也显示操作成功.使用时要注意通过其参数判断是否读取完毕 void InternetReadFileEx(HINTE ...

  8. unity 退到桌面的 OnApplicationPause

    void OnApplicationFocus( bool isFocus ) { // Debug.Log("--------OnApplicationPause---" + i ...

  9. SQL函数学习(二):DATEADD() 函数

    DATEADD() 函数在日期中添加或减去指定的时间间隔. 语法 DATEADD(datepart,number,date) date 参数是合法的日期表达式.number 是您希望添加的间隔数:对于 ...

  10. Hibernate框架--关联映射,一对多,多对多 inverse cascade

    回顾Hibernate: 1. hibernate开发环境搭建 ----> 引入jar: hibernate.jar + required + jpa + 驱动包 ---> hiberna ...