当前位置:首页 > PHP教程 > php高级应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2014-09-09 15:42:28 浏览: 评论:0 

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

  1. function getfolders( $resourcetype, $currentfolder ) 
  2. { 
  3.  // map the virtual path to the local server path. 
  4.  $sserverdir = servermapfolder( $resourcetype, $currentfolder, 'getfolders' ) ; 
  5.  
  6.  // array that will hold the folders names. 
  7.  $afolders = array() ; 
  8.  
  9.  $ocurrentfolder = opendir( $sserverdir ) ; 
  10. //开源代码phpfensi.com 
  11.  while ( $sfile = readdir( $ocurrentfolder ) ) 
  12.  { 
  13.   if ( $sfile != '.' && $sfile != '..' && is_dir( $sserverdir . $sfile ) ) 
  14.    $afolders[] = ' . converttoxmlattribute( $sfile ) . '" />' ; 
  15.  } 
  16.  
  17.  closedir( $ocurrentfolder ) ; 
  18.  
  19.  // open the "folders" node. 
  20.  echo "" ; 
  21.  
  22.  natcasesort( $afolders ) ; 
  23.  foreach ( $afolders as $sfolder ) 
  24.   echo $sfolder ; 
  25.  
  26.  // close the "folders" node. 
  27.  echo "" ; 
  28. } 
  29.  
  30. function getfoldersandfiles( $resourcetype, $currentfolder ) 
  31. { 
  32.  // map the virtual path to the local server path. 
  33.  $sserverdir = servermapfolder( $resourcetype, $currentfolder, 'getfoldersandfiles' ) ; 
  34.  
  35.  // arrays that will hold the folders and files names. 
  36.  $afolders = array() ; 
  37.  $afiles  = array() ; 
  38.  
  39.  $ocurrentfolder = opendir( $sserverdir ) ; 
  40.  
  41.  while ( $sfile = readdir( $ocurrentfolder ) ) 
  42.  { 
  43.   if ( $sfile != '.' && $sfile != '..' ) 
  44.   { 
  45.    if ( is_dir( $sserverdir . $sfile ) ) 
  46.     $afolders[] = ' . converttoxmlattribute( $sfile ) . '" />' ; 
  47.    else 
  48.    { 
  49.     $ifilesize = @filesize( $sserverdir . $sfile ) ; 
  50.     if ( !$ifilesize ) { 
  51.      $ifilesize = 0 ; 
  52.     } 
  53.     if ( $ifilesize > 0 ) 
  54.     { 
  55.      $ifilesize = round( $ifilesize / 1024 ) ; 
  56.      if ( $ifilesize < 1 ) $ifilesize = 1 ; 
  57.     } 
  58.  
  59.     $afiles[] = ' . converttoxmlattribute( $sfile ) . '" size="' . $ifilesize . '" />' ; 
  60.    } 
  61.   } 
  62.  } 
  63.  
  64.  // send the folders 
  65.  natcasesort( $afolders ) ; 
  66.  echo '' ; 
  67.  
  68.  foreach ( $afolders as $sfolder ) 
  69.   echo $sfolder ; 
  70.  
  71.  echo '' ; 
  72.  
  73.  // send the files 
  74.  natcasesort( $afiles ) ; 
  75.  echo '' ; 
  76.  
  77.  foreach ( $afiles as $sfiles ) 
  78.   echo $sfiles ; 
  79.  
  80.  echo '' ; 
  81. } 
  82.  
  83. function createfolder( $resourcetype, $currentfolder ) 
  84. { 
  85.  if (!isset($_get)) { 
  86.   global $_get; 
  87.  } 
  88.  $serrornumber = '0' ; 
  89.  $serrormsg  = '' ; 
  90.  
  91.  if ( isset( $_get['newfoldername'] ) ) 
  92.  { 
  93.   $snewfoldername = $_get['newfoldername'] ; 
  94.   $snewfoldername = sanitizefoldername( $snewfoldername ) ; 
  95.  
  96.   if ( strpos( $snewfoldername, '..' ) !== false ) 
  97.    $serrornumber = '102' ;  // invalid folder name. 
  98.   else 
  99.   { 
  100.    // map the virtual path to the local server path of the current folder. 
  101.    $sserverdir = servermapfolder( $resourcetype, $currentfolder, 'createfolder' ) ; 
  102.  
  103.    if ( is_writable( $sserverdir ) ) 
  104.    { 
  105.     $sserverdir .= $snewfoldername ; 
  106.  
  107.     $serrormsg = createserverfolder( $sserverdir ) ; 
  108.  
  109.     switch ( $serrormsg ) 
  110.     { 
  111.      case '' : 
  112.       $serrornumber = '0' ; 
  113.       break ; 
  114.      case 'invalid argument' : 
  115.      case 'no such file or directory' : 
  116.       $serrornumber = '102' ;  // path too long. 
  117.       break ; 
  118.      default : 
  119.       $serrornumber = '110' ; 
  120.       break ; 
  121.     } 
  122.    } 
  123.    else 
  124.     $serrornumber = '103' ; 
  125.   } 
  126.  } 
  127.  else 
  128.   $serrornumber = '102' ; 
  129.  
  130.  // create the "error" node. 
  131.  echo ' . $serrornumber . '" originaldescription="' . converttoxmlattribute( $serrormsg ) . '" />' ; 
  132. } 
  133.  
  134. function fileupload( $resourcetype, $currentfolder, $scommand ) 
  135. { 
  136.  if (!isset($_files)) { 
  137.   global $_files; 
  138.  } 
  139.  $serrornumber = '0' ; 
  140.  $sfilename = '' ; 
  141.  
  142.  if ( isset( $_files['newfile'] ) && !is_null( $_files['newfile']['tmp_name'] ) ) 
  143.  { 
  144.   global $config ; 
  145.  
  146.   $ofile = $_files['newfile'] ; 
  147.  
  148.   // map the virtual path to the local server path. 
  149.   $sserverdir = servermapfolder( $resourcetype, $currentfolder, $scommand ) ; 
  150.  
  151.   // get the uploaded file name. 
  152.   $sfilename = $ofile['name'] ; 
  153.   $sfilename = sanitizefilename( $sfilename ) ; 
  154.  
  155.   $soriginalfilename = $sfilename ; 
  156.  
  157.   // get the extension. 
  158.   $sextension = substr( $sfilename, ( strrpos($sfilename, '.') + 1 ) ) ; 
  159.   $sextension = strtolower( $sextension ) ; 
  160.  
  161.   if ( isset( $config['secureimageuploads'] ) ) 
  162.   { 
  163.    if ( ( $isimagevalid = isimagevalid( $ofile['tmp_name'], $sextension ) ) === false ) 
  164.    { 
  165.     $serrornumber = '202' ; 
  166.    } 
  167.   } 
  168.  
  169.   if ( isset( $config['htmlextensions'] ) ) 
  170.   { 
  171.    if ( !ishtmlextension( $sextension, $config['htmlextensions'] ) && 
  172.     ( $detecthtml = detecthtml( $ofile['tmp_name'] ) ) === true ) 
  173.    { 
  174.     $serrornumber = '202' ; 
  175.    } 
  176.   } 
  177.  
  178.   // check if it is an allowed extension. 
  179.   if ( !$serrornumber && isallowedext( $sextension, $resourcetype ) ) 
  180.   { 
  181.    $icounter = 0 ; 
  182.  
  183.    while ( true ) 
  184.    { 
  185.     $sfilepath = $sserverdir . $sfilename ; 
  186.     //$sfilepath =$sserverdir.time().$sextension; 
  187.      
  188.  
  189.     if ( is_file( $sfilepath ) ) 
  190.     { 
  191.      $icounter++ ; 
  192.      $sfilename = removeextension( $soriginalfilename ) . '(' . $icounter . ').' . $sextension ; 
  193.      $serrornumber = '201' ; 
  194.     } 
  195.     else 
  196.     { 
  197.      move_uploaded_file( $ofile['tmp_name'], $sfilepath ) ; 
  198.  
  199.      if ( is_file( $sfilepath ) ) 
  200.      { 
  201.       if ( isset( $config['chmodonupload'] ) && !$config['chmodonupload'] ) 
  202.       { 
  203.        break ; 
  204.       } 
  205.  
  206.       $permissions = 0777; 
  207.  
  208.       if ( isset( $config['chmodonupload'] ) && $config['chmodonupload'] ) 
  209.       { 
  210.        $permissions = $config['chmodonupload'] ; 
  211.       } 
  212.  
  213.       $oldumask = umask(0) ; 
  214.       chmod( $sfilepath, $permissions ) ; 
  215.       umask( $oldumask ) ; 
  216.      } 
  217.  
  218.      break ; 
  219.     } 
  220.    } 
  221.       
  222.  //增加水印  
  223.    // add start  
  224.     
  225.    $waterimg="phpfensi.com.png";    //水印图片  这里修改你的水印图片所在的地址 
  226.       
  227.    if($watermark==1)  
  228.    {  
  229.     $image_size = getimagesize($sfilepath);  
  230.     $iinfo=getimagesize($sfilepath,$iinfo);  
  231.     $nimage=imagecreatetruecolor($image_size[0],$image_size[1]);  
  232.     $white=imagecolorallocate($nimage,255,255,255);  
  233.     $black=imagecolorallocate($nimage,0,0,0);  
  234.     $red=imagecolorallocate($nimage,255,0,0);  
  235.     imagefill($nimage,0,0,$white);  
  236.     switch ($iinfo[2])  
  237.     {  
  238.      case 1:  
  239.       $simage =imagecreatefromgif($sfilepath);  
  240.       break;  
  241.      case 2:  
  242.       $simage =imagecreatefromjpeg($sfilepath);  
  243.       break;  
  244.      case 3:  
  245.       $simage =imagecreatefrompng($sfilepath);  
  246.       break;  
  247.    //            case 6:  
  248.    //            $simage =imagecreatefromwbmp($sfilepath);  
  249.    //            break;  
  250.      default:  
  251.       die("不支持的文件类型");  
  252.       exit;  
  253.     }  
  254.       
  255.     imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);  
  256.       
  257.     switch($watertype)  
  258.     {  
  259.      case 1:   //加水印字符串  
  260.       imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);  
  261.       break;  
  262.      case 2:   //加水印图片  
  263.       $simage1 =imagecreatefrompng($waterimg);  
  264.       imagecopy($nimage,$simage1,$image_size[0]/2,$image_size[0]/2,0,0,240,65);  
  265.       imagedestroy($simage1);  
  266.       break;  
  267.     }  
  268.            
  269.     switch ($iinfo[2])  
  270.     {  
  271.      case 1:  
  272.       imagegif($nimage, $sfilepath);  
  273.    //            imagejpeg($nimage, $sfilepath);  
  274.       break;  
  275.      case 2:  
  276.       imagejpeg($nimage, $sfilepath);  
  277.       break;  
  278.      case 3:  
  279.       imagepng($nimage, $sfilepath);  
  280.       break;  
  281.    //            case 6:  
  282.    //            imagewbmp($nimage, $sfilepath);  
  283.    //            //imagejpeg($nimage, $sfilepath);  
  284.    //            break;  
  285.     }  
  286.       
  287.     //覆盖原上传文件  
  288.     imagedestroy($nimage);  
  289.     imagedestroy($simage);  
  290.    }   
  291.  
  292.  
  293.   //增加水印结果 
  294.     
  295.    if ( file_exists( $sfilepath ) ) 
  296.    { 
  297.     //previous checks failed, try once again 
  298.     if ( isset( $isimagevalid ) && $isimagevalid === -1 && isimagevalid( $sfilepath, $sextension ) === false ) 
  299.     { 
  300.      @unlink( $sfilepath ) ; 
  301.      $serrornumber = '202' ; 
  302.     } 
  303.     else if ( isset( $detecthtml ) && $detecthtml === -1 && detecthtml( $sfilepath ) === true ) 
  304.     { 
  305.      @unlink( $sfilepath ) ; 
  306.      $serrornumber = '202' ; 
  307.     } 
  308.    } 
  309.   } 
  310.   else 
  311.    $serrornumber = '202' ; 
  312.  } 
  313.  else 
  314.   $serrornumber = '202' ; 
  315.  
  316.  
  317.  $sfileurl = combinepaths( getresourcetypepath( $resourcetype, $scommand ) , $currentfolder ) ; 
  318.  $sfileurl = combinepaths( $sfileurl, $sfilename ) ; 
  319.  
  320.  senduploadresults( $serrornumber, $sfileurl, $sfilename ) ; 
  321.  
  322.  exit ; 
  323. }?>

Tags: fck上传图片 fck增加水印

分享到: