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

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

分享到: