fck 上传图片增加水印代码修改

function getfolders( $resourcetype, $currentfolder )
{
 // map the virtual path to the local server path.
 $sserverdir = servermapfolder( $resourcetype, $currentfolder, 'getfolders' ) ;

 // array that will hold the folders names.
 $afolders = array() ;

 $ocurrentfolder = opendir( $sserverdir ) ;

 while ( $sfile = readdir( $ocurrentfolder ) )
 {
  if ( $sfile != '.' && $sfile != '..' && is_dir( $sserverdir . $sfile ) )
   $afolders[] = '<folder name="' . converttoxmlattribute( $sfile ) . '" />' ;
 }

 closedir( $ocurrentfolder ) ;

 // open the "folders" node.
 echo "<folders>" ;

 natcasesort( $afolders ) ;
 foreach ( $afolders as $sfolder )
  echo $sfolder ;

 // close the "folders" node.
 echo "</folders>" ;
}

function getfoldersandfiles( $resourcetype, $currentfolder )
{
 // map the virtual path to the local server path.
 $sserverdir = servermapfolder( $resourcetype, $currentfolder, 'getfoldersandfiles' ) ;

 // arrays that will hold the folders and files names.
 $afolders = array() ;
 $afiles  = array() ;

 $ocurrentfolder = opendir( $sserverdir ) ;

 while ( $sfile = readdir( $ocurrentfolder ) )
 {
  if ( $sfile != '.' && $sfile != '..' )
  {
   if ( is_dir( $sserverdir . $sfile ) )
    $afolders[] = '<folder name="' . converttoxmlattribute( $sfile ) . '" />' ;
   else
   {
    $ifilesize = @filesize( $sserverdir . $sfile ) ;
    if ( !$ifilesize ) {
     $ifilesize = 0 ;
    }
    if ( $ifilesize > 0 )
    {
     $ifilesize = round( $ifilesize / 1024 ) ;
     if ( $ifilesize < 1 ) $ifilesize = 1 ;
    }

    $afiles[] = '<file name="' . converttoxmlattribute( $sfile ) . '" size="' . $ifilesize . '" />' ;
   }
  }
 }

 // send the folders
 natcasesort( $afolders ) ;
 echo '<folders>' ;

 foreach ( $afolders as $sfolder )
  echo $sfolder ;

 echo '</folders>' ;

 // send the files
 natcasesort( $afiles ) ;
 echo '<files>' ;

 foreach ( $afiles as $sfiles )
  echo $sfiles ;

 echo '</files>' ;
}

function createfolder( $resourcetype, $currentfolder )
{
 if (!isset($_get)) {
  global $_get;
 }
 $serrornumber = '0' ;
 $serrormsg  = '' ;

 if ( isset( $_get['newfoldername'] ) )
 {
  $snewfoldername = $_get['newfoldername'] ;
  $snewfoldername = sanitizefoldername( $snewfoldername ) ;

  if ( strpos( $snewfoldername, '..' ) !== false )
   $serrornumber = '102' ;  // invalid folder name.
  else
  {
   // map the virtual path to the local server path of the current folder.
   $sserverdir = servermapfolder( $resourcetype, $currentfolder, 'createfolder' ) ;

   if ( is_writable( $sserverdir ) )
   {
    $sserverdir .= $snewfoldername ;

    $serrormsg = createserverfolder( $sserverdir ) ;

    switch ( $serrormsg )
    {
     case '' :
      $serrornumber = '0' ;
      break ;
     case 'invalid argument' :
     case 'no such file or directory' :
      $serrornumber = '102' ;  // path too long.
      break ;
     default :
      $serrornumber = '110' ;
      break ;
    }
   }
   else
    $serrornumber = '103' ;
  }
 }
 else
  $serrornumber = '102' ;

 // create the "error" node.
 echo '<error number="' . $serrornumber . '" originaldescription="' . converttoxmlattribute( $serrormsg ) . '" />' ;
}

function fileupload( $resourcetype, $currentfolder, $scommand )
{
 if (!isset($_files)) {
  global $_files;
 }
 $serrornumber = '0' ;
 $sfilename = '' ;

 if ( isset( $_files['newfile'] ) && !is_null( $_files['newfile']['tmp_name'] ) )
 {
  global $config ;

  $ofile = $_files['newfile'] ;

  // map the virtual path to the local server path.
  $sserverdir = servermapfolder( $resourcetype, $currentfolder, $scommand ) ;

  // get the uploaded file name.
  $sfilename = $ofile['name'] ;
  $sfilename = sanitizefilename( $sfilename ) ;

  $soriginalfilename = $sfilename ;

  // get the extension.
  $sextension = substr( $sfilename, ( strrpos($sfilename, '.') + 1 ) ) ;
  $sextension = strtolower( $sextension ) ;

  if ( isset( $config['secureimageuploads'] ) )
  {
   if ( ( $isimagevalid = isimagevalid( $ofile['tmp_name'], $sextension ) ) === false )
   {
    $serrornumber = '202' ;
   }
  }

  if ( isset( $config['htmlextensions'] ) )
  {
   if ( !ishtmlextension( $sextension, $config['htmlextensions'] ) &&
    ( $detecthtml = detecthtml( $ofile['tmp_name'] ) ) === true )
   {
    $serrornumber = '202' ;
   }
  }

  // check if it is an allowed extension.
  if ( !$serrornumber && isallowedext( $sextension, $resourcetype ) )
  {
   $icounter = 0 ;

   while ( true )
   {
    $sfilepath = $sserverdir . $sfilename ;
    //$sfilepath =$sserverdir.time().$sextension;
    

    if ( is_file( $sfilepath ) )
    {
     $icounter++ ;
     $sfilename = removeextension( $soriginalfilename ) . '(' . $icounter . ').' . $sextension ;
     $serrornumber = '201' ;
    }
    else
    {
     move_uploaded_file( $ofile['tmp_name'], $sfilepath ) ;

     if ( is_file( $sfilepath ) )
     {
      if ( isset( $config['chmodonupload'] ) && !$config['chmodonupload'] )
      {
       break ;
      }

      $permissions = 0777;

      if ( isset( $config['chmodonupload'] ) && $config['chmodonupload'] )
      {
       $permissions = $config['chmodonupload'] ;
      }

      $oldumask = umask(0) ;
      chmod( $sfilepath, $permissions ) ;
      umask( $oldumask ) ;
     }

     break ;
    }
   }
   
  

 代码如下 复制代码
 //增加水印
   // add start
   
    
   $waterimg="111cn.net.png";    //水印图片  这里修改你的水印图片所在的地址
    
   if($watermark==1)
   {
    $image_size = getimagesize($sfilepath);
    $iinfo=getimagesize($sfilepath,$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($sfilepath);
      break;
     case 2:
      $simage =imagecreatefromjpeg($sfilepath);
      break;
     case 3:
      $simage =imagecreatefrompng($sfilepath);
      break;
   //            case 6:
   //            $simage =imagecreatefromwbmp($sfilepath);
   //            break;
     default:
      die("不支持的文件类型");
      exit;
    }
    
    imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
    
    switch($watertype)
    {
     case 1:   //加水印字符串
      imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
      break;
     case 2:   //加水印图片
      $simage1 =imagecreatefrompng($waterimg);
      imagecopy($nimage,$simage1,$image_size[0]/2,$image_size[0]/2,0,0,240,65);
      imagedestroy($simage1);
      break;
    }
         
    switch ($iinfo[2])
    {
     case 1:
      imagegif($nimage, $sfilepath);
   //            imagejpeg($nimage, $sfilepath);
      break;
     case 2:
      imagejpeg($nimage, $sfilepath);
      break;
     case 3:
      imagepng($nimage, $sfilepath);
      break;
   //            case 6:
   //            imagewbmp($nimage, $sfilepath);
   //            //imagejpeg($nimage, $sfilepath);
   //            break;
    }
    
    //覆盖原上传文件
    imagedestroy($nimage);
    imagedestroy($simage);
   }

  //增加水印结果
   
   if ( file_exists( $sfilepath ) )
   {
    //previous checks failed, try once again
    if ( isset( $isimagevalid ) && $isimagevalid === -1 && isimagevalid( $sfilepath, $sextension ) === false )
    {
     @unlink( $sfilepath ) ;
     $serrornumber = '202' ;
    }
    else if ( isset( $detecthtml ) && $detecthtml === -1 && detecthtml( $sfilepath ) === true )
    {
     @unlink( $sfilepath ) ;
     $serrornumber = '202' ;
    }
   }
  }
  else
   $serrornumber = '202' ;
 }
 else
  $serrornumber = '202' ;

 $sfileurl = combinepaths( getresourcetypepath( $resourcetype, $scommand ) , $currentfolder ) ;
 $sfileurl = combinepaths( $sfileurl, $sfilename ) ;

 senduploadresults( $serrornumber, $sfileurl, $sfilename ) ;

 exit ;
}?>

时间: 2024-09-20 05:58:42

fck 上传图片增加水印代码修改的相关文章

asp.net FCKeditor上传图片加入水印代码

如何在自己的网站中架设fckeditor编辑器我就不说了,本文默认你已经架设过并且熟悉fckeditor内部结构. 在下载fckeditor编辑器的同时,如果是使用.net版本,还必须下载一个源代码包,在里面有一些功能类,和编译出来的dll文件,存放在bin文件中,我们所需要做的就是修改源代码,获得新的dll,在自己的网站中替换就可以了. (源代码版本号是fckeditor.net_2.5,编辑器文件版本号为fckeditor_2.6.2) 实用vs2005打开代码包根目录下的fredck.fc

PHP上传图片进行等比缩放可增加水印功能_php技巧

啥也不说,直接上代码,大家可以自行添加增加水印功能: 复制代码 代码如下: <?php /** * * @author zhao jinhan * @date 2014年1月13日11:54:30 * @email xb_zjh@126.com * */ header('Content-type:text/html; charset=utf-8'); //定义缩略图的宽高 define('THUMB_WIDTH',300); define('THUMB_HEIGHT',300); /** * 重

php实现给上传图片加水印的程序代码

用PHP给上传图片加水印的程序是通过判断文件类型建立图形,然后把其复制到原建立的图形上,填充并建立rectangle,以备写入imagestring()或是原已经定好的图像程序当中判断水印类型:一是字符串,另是增加一个图形对象在上面.如果你对PHP的GD库比较熟悉,看懂这篇文章一点都不难了! /***************************************************** 参数说明: $max_file_size  : 上传文件大小限制, 单位BYTE $destin

php 使用GD库为页面增加水印示例代码

 这篇文章主要介绍了php 使用GD库为页面增加水印的具体实现,需要的朋友可以参考下  代码如下: <?php  header ("Content-type: image/png");  $conn = MYSQL_connect("localhost", "root", ""); //连接数据库  $colname_rs_article = $_GET['id']; //获取参数id    mysql_select_d

PHP:实现给上传图片加水印的程序代码

用PHP给上传图片加水印的程序是通过判定文件类型建立图形,然后把其复制到原建立的图形上,填充并建立rectangle,以备写入imagestring()或是原已经定好的图像程序当中判定水印类型:一是字符串,另是增加一个图形对象在上面.假如你对PHP的GD库比较熟悉,看懂这篇文章一点都不难了! /***************************************************** 参数说明: $max_file_size : 上传文件大小限制, 单位BYTE $destina

掌握HTML语言的核心知识 提高页面代码修改效率

做网站,HTML语言看似不重要,其实,恰恰越是基础的知识越是重要.站长做网站往往直接去网上下载一个CMS系统,然后上传安装便是,对于代码部分的修改却束手无策.其实方面的知识不难,只要我们平时多多地关注,多看一些相关的教程知识,相信对HTML语言会很快入门. 在这里,我简单地讲几个关键点,HTML语言的规则是由一对对的标签组成的,比如就是其中一种标签,< /html>所有的HTML页面都是由这样的形成构成的,当然其中还有其他的很多的标签对,大部分的标签只要有开始标签,就有结束标签,当然少数的标签

asp.net中上传图片文件实例(给上传图片加水印)

本款asp教程.net教程是一款asp.net教程中上传图片文件实例(给上传图片加水印)哦,他先是把图片上传服务器,然后增加图片水印,再把图片保存到数据库教程. // 涉及命名空间 using system; using system.collections; using system.componentmodel; using system.data; using system.data.sqlclient; using system.drawing; using system.drawing

安卓开源画图app“MK画图”增加水印功能,呵呵

 安卓开源画图app"MK画图"增加水印功能,呵呵 源码路径:https://github.com/JumpingYang001/markers-cn 源码和apk百度云下载地址:http://pan.baidu.com/s/1kVqGtwV Markers画图中文版 Forked from https://github.com/dsandler/markers, but a Chinese version:Markers画图中文版 Release apk https://gith

aspjpeg给图片加水印 代码

aspjpeg给图片加水印 代码.以下是我的aspjpeg参数配置,请高手帮我看看应该怎么修改,才能实现上面几种我想要的效果.谢谢 -------------------------------- 参数: sSYText = "www.google.com"   sSYFontColor = "000000"   nSYFontSize = Clng("24")   sSYFontName = "Verdana, Arial, Helv