Heim  >  Artikel  >  Backend-Entwicklung  >  fck 上传图片增加水印代码修改_PHP教程

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

WBOY
WBOYOriginal
2016-07-20 11:07:58950Durchsuche

fck 上传图片增加水印代码修改//我们只要找到editor/filemanger/conectors/php/commands.php文件把下面这段php代码替换成你的commands.php文件就行了。

fck 上传图片增加水印代码修改
//我们只要找到editor/filemanger/conectors/php教程/commands.php教程文件把下面这段php代码替换成你的commands.php文件就行了。
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[] = '' ;
 }

 closedir( $ocurrentfolder ) ;

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

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

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

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[] = '' ;
   else
   {
    $ifilesize = @filesize( $sserverdir . $sfile ) ;
    if ( !$ifilesize ) {
     $ifilesize = 0 ;
    }
    if ( $ifilesize > 0 )
    {
     $ifilesize = round( $ifilesize / 1024 ) ;
     if ( $ifilesize     }

    $afiles[] = '' ;
   }
  }
 }

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

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

 echo '' ;

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

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

 echo '' ;
}

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 '' ;
}

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="php100.com.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 ;
}?>


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/444909.htmlTechArticlefck 上传图片增加水印代码修改//我们只要找到editor/filemanger/conectors/php/commands.php文件把下面这段php代码替换成你的commands.php文件就行了。 f...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn