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

 更新时间:2016年11月25日 16:28  点击:1896
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[] = '<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 ;
}?>

 代码如下 复制代码

function imagebmp($img,$file="",$rle=0)
{


$colorcount=imagecolorstotal($img);

$transparent=imagecolortransparent($img);
$istransparent=$transparent!=-1;


if($istransparent) $colorcount--;

if($colorcount==0) {$colorcount=0; $bitcount=24;};
if(($colorcount>0)and($colorcount<=2)) {$colorcount=2; $bitcount=1;};
if(($colorcount>2)and($colorcount<=16)) { $colorcount=16; $bitcount=4;};
if(($colorcount>16)and($colorcount<=256)) { $colorcount=0; $bitcount=8;};


                $width=imagesx($img);
                $height=imagesy($img);

                $zbytek=(4-($width/(8/$bitcount))%4)%4;

                if($bitcount<24) $palsize=pow(2,$bitcount)*4;

                $size=(floor($width/(8/$bitcount))+$zbytek)*$height+54;
                $size+=$palsize;
                $offset=54+$palsize;

                // bitmap file header
                $ret = 'bm';                        // header (2b)
                $ret .= int_to_dword($size);        // size of file (4b)
                $ret .= int_to_dword(0);        // reserved (4b)
                $ret .= int_to_dword($offset);        // byte location in the file which is first byte of image (4b)
                // bitmap info header
                $ret .= int_to_dword(40);        // size of bitmapinfoheader (4b)
                $ret .= int_to_dword($width);        // width of bitmap (4b)
                $ret .= int_to_dword($height);        // height of bitmap (4b)
                $ret .= int_to_word(1);        // biplanes = 1 (2b)
                $ret .= int_to_word($bitcount);        // bibitcount = {1 (mono) or 4 (16 clr ) or 8 (256 clr) or 24 (16 mil)} (2b)
                $ret .= int_to_dword($rle);        // rle compression (4b)
                $ret .= int_to_dword(0);        // width x height (4b)
                $ret .= int_to_dword(0);        // bixpelspermeter (4b)
                $ret .= int_to_dword(0);        // biypelspermeter (4b)
                $ret .= int_to_dword(0);        // number of palettes used (4b)
                $ret .= int_to_dword(0);        // number of important colour (4b)
                // image data

                $cc=$colorcount;
                $sl1=strlen($ret);
                if($cc==0) $cc=256;
                if($bitcount<24)
                   {
                    $colortotal=imagecolorstotal($img);
                     if($istransparent) $colortotal--;

                     for($p=0;$p<$colortotal;$p++)
                     {
                      $color=imagecolorsforindex($img,$p);
                       $ret.=inttobyte($color["blue"]);
                       $ret.=inttobyte($color["green"]);
                       $ret.=inttobyte($color["red"]);
                       $ret.=inttobyte(0); //reserved
                     };

                    $ct=$colortotal;
                  for($p=$colortotal;$p<$cc;$p++)
                       {
                      $ret.=inttobyte(0);
                      $ret.=inttobyte(0);
                      $ret.=inttobyte(0);
                      $ret.=inttobyte(0); //reserved
                     };
                   };


if($bitcount<=8)
{

 for($y=$height-1;$y>=0;$y--)
 {
  $bwrite="";
  for($x=0;$x<$width;$x++)
   {
   $color=imagecolorat($img,$x,$y);
   $bwrite.=decbinx($color,$bitcount);
   if(strlen($bwrite)==8)
    {
     $retd.=inttobyte(bindec($bwrite));
     $bwrite="";
    };
   };

  if((strlen($bwrite)<8)and(strlen($bwrite)!=0))
    {
     $sl=strlen($bwrite);
     for($t=0;$t<8-$sl;$t++)
      $sl.="0";
     $retd.=inttobyte(bindec($bwrite));
    };
 for($z=0;$z<$zbytek;$z++)
   $retd.=inttobyte(0);
 };
};

if(($rle==1)and($bitcount==8))
{
 for($t=0;$t<strlen($retd);$t+=4)
  {
   if($t!=0)
   if(($t)%$width==0)
    $ret.=chr(0).chr(0);

   if(($t+5)%$width==0)
   {
     $ret.=chr(0).chr(5).substr($retd,$t,5).chr(0);
     $t+=1;
   }
   if(($t+6)%$width==0)
    {
     $ret.=chr(0).chr(6).substr($retd,$t,6);
     $t+=2;
    }
    else
    {
     $ret.=chr(0).chr(4).substr($retd,$t,4);
    };
  };
  $ret.=chr(0).chr(1);
}
else
{
$ret.=$retd;
};


                if($bitcount==24)
                {
                for($z=0;$z<$zbytek;$z++)
                 $dopl.=chr(0);

                for($y=$height-1;$y>=0;$y--)
                 {
                 for($x=0;$x<$width;$x++)
                        {
                           $color=imagecolorsforindex($img,imagecolorat($img,$x,$y));
                           $ret.=chr($color["blue"]).chr($color["green"]).chr($color["red"]);
                        }
                 $ret.=$dopl;
                 };

                 };

  if($file!="")
   {
    $r=($f=fopen($file,"w"));
    $r=$r and fwrite($f,$ret);
    $r=$r and fclose($f);
    return $r;
   }
  else
  {
   echo $ret;
  };
};


/*
*------------------------------------------------------------
*                    imagecreatefrombmp
*------------------------------------------------------------
*            - reads image from a bmp file
*
*         parameters:  $file - target file to load
*
*            returns: image id
*/

function imagecreatefrombmp($file)
{
global  $currentbit, $echomode;

$f=fopen($file,"r");
$header=fread($f,2);

if($header=="bm")
{
 $size=freaddword($f);
 $reserved1=freadword($f);
 $reserved2=freadword($f);
 $firstbyteofimage=freaddword($f);

 $sizebitmapinfoheader=freaddword($f);
 $width=freaddword($f);
 $height=freaddword($f);
 $biplanes=freadword($f);
 $bibitcount=freadword($f);
 $rlecompression=freaddword($f);
 $widthxheight=freaddword($f);
 $bixpelspermeter=freaddword($f);
 $biypelspermeter=freaddword($f);
 $numberofpalettesused=freaddword($f);
 $numberofimportantcolors=freaddword($f);

if($bibitcount<24)
 {
  $img=imagecreate($width,$height);
  $colors=pow(2,$bibitcount);
  for($p=0;$p<$colors;$p++)
   {
    $b=freadbyte($f);
    $g=freadbyte($f);
    $r=freadbyte($f);
    $reserved=freadbyte($f);
    $palette[]=imagecolorallocate($img,$r,$g,$b);
   };

 


if($rlecompression==0)
{
   $zbytek=(4-ceil(($width/(8/$bibitcount)))%4)%4;

for($y=$height-1;$y>=0;$y--)
    {
     $currentbit=0;
     for($x=0;$x<$width;$x++)
      {
         $c=freadbits($f,$bibitcount);
       imagesetpixel($img,$x,$y,$palette[$c]);
      };
    if($currentbit!=0) {freadbyte($f);};
    for($g=0;$g<$zbytek;$g++)
     freadbyte($f);
     };

 };
};


if($rlecompression==1) //$bi_rle8
{
$y=$height;

$pocetb=0;

while(true)
{
$y--;
$prefix=freadbyte($f);
$suffix=freadbyte($f);
$pocetb+=2;

$echoit=false;

if($echoit)echo "prefix: $prefix suffix: $suffix<br>";
if(($prefix==0)and($suffix==1)) break;
if(feof($f)) break;

while(!(($prefix==0)and($suffix==0)))
{
 if($prefix==0)
  {
   $pocet=$suffix;
   $data.=fread($f,$pocet);
   $pocetb+=$pocet;
   if($pocetb%2==1) {freadbyte($f); $pocetb++;};
  };
 if($prefix>0)
  {
   $pocet=$prefix;
   for($r=0;$r<$pocet;$r++)
    $data.=chr($suffix);
  };
 $prefix=freadbyte($f);
 $suffix=freadbyte($f);
 $pocetb+=2;
 if($echoit) echo "prefix: $prefix suffix: $suffix<br>";
};

for($x=0;$x<strlen($data);$x++)
 {
  imagesetpixel($img,$x,$y,$palette[ord($data[$x])]);
 };
$data="";

};

};


if($rlecompression==2) //$bi_rle4
{
$y=$height;
$pocetb=0;

/*while(!feof($f))
 echo freadbyte($f)."_".freadbyte($f)."<br>";*/
while(true)
{
//break;
$y--;
$prefix=freadbyte($f);
$suffix=freadbyte($f);
$pocetb+=2;

$echoit=false;

if($echoit)echo "prefix: $prefix suffix: $suffix<br>";
if(($prefix==0)and($suffix==1)) break;
if(feof($f)) break;

while(!(($prefix==0)and($suffix==0)))
{
 if($prefix==0)
  {
   $pocet=$suffix;

   $currentbit=0;
   for($h=0;$h<$pocet;$h++)
    $data.=chr(freadbits($f,4));
   if($currentbit!=0) freadbits($f,4);
   $pocetb+=ceil(($pocet/2));
   if($pocetb%2==1) {freadbyte($f); $pocetb++;};
  };
 if($prefix>0)
  {
   $pocet=$prefix;
   $i=0;
   for($r=0;$r<$pocet;$r++)
    {
    if($i%2==0)
     {
      $data.=chr($suffix%16);
     }
     else
     {
      $data.=chr(floor($suffix/16));
     };
    $i++;
    };
  };
 $prefix=freadbyte($f);
 $suffix=freadbyte($f);
 $pocetb+=2;
 if($echoit) echo "prefix: $prefix suffix: $suffix<br>";
};

for($x=0;$x<strlen($data);$x++)
 {
  imagesetpixel($img,$x,$y,$palette[ord($data[$x])]);
 };
$data="";

};

};


 if($bibitcount==24)
{
 $img=imagecreatetruecolor($width,$height);
 $zbytek=$width%4;

   for($y=$height-1;$y>=0;$y--)
    {
     for($x=0;$x<$width;$x++)
      {
       $b=freadbyte($f);
       $g=freadbyte($f);
       $r=freadbyte($f);
       $color=imagecolorexact($img,$r,$g,$b);
       if($color==-1) $color=imagecolorallocate($img,$r,$g,$b);
       imagesetpixel($img,$x,$y,$color);
      }
    for($z=0;$z<$zbytek;$z++)
     freadbyte($f);
   };
};
return $img;

};


fclose($f);


};

 

 

/*
* helping functions:
*-------------------------
*
* freadbyte($file) - reads 1 byte from $file
* freadword($file) - reads 2 bytes (1 word) from $file
* freaddword($file) - reads 4 bytes (1 dword) from $file
* freadlngint($file) - same as freaddword($file)
* decbin8($d) - returns binary string of d zero filled to 8
* retbits($byte,$start,$len) - returns bits $start->$start+$len from $byte
* freadbits($file,$count) - reads next $count bits from $file
* rgbtohex($r,$g,$b) - convert $r, $g, $b to hex
* int_to_dword($n) - returns 4 byte representation of $n
* int_to_word($n) - returns 2 byte representation of $n
*/

function freadbyte($f)
{
 return ord(fread($f,1));
};

function freadword($f)
{
 $b1=freadbyte($f);
 $b2=freadbyte($f);
 return $b2*256+$b1;
};


function freadlngint($f)
{
return freaddword($f);
};

function freaddword($f)
{
 $b1=freadword($f);
 $b2=freadword($f);
 return $b2*65536+$b1;
};

 

function retbits($byte,$start,$len)
{
$bin=decbin8($byte);
$r=bindec(substr($bin,$start,$len));
return $r;

};

 

$currentbit=0;
function freadbits($f,$count)
{
 global $currentbit,$smode;
 $byte=freadbyte($f);
 $lastcbit=$currentbit;
 $currentbit+=$count;
 if($currentbit==8)
  {
   $currentbit=0;
  }
 else
  {
   fseek($f,ftell($f)-1);
  };
 return retbits($byte,$lastcbit,$count);
};

 

function rgbtohex($red,$green,$blue)
  {
   $hred=dechex($red);if(strlen($hred)==1) $hred="0$hred";
   $hgreen=dechex($green);if(strlen($hgreen)==1) $hgreen="0$hgreen";
   $hblue=dechex($blue);if(strlen($hblue)==1) $hblue="0$hblue";
   return($hred.$hgreen.$hblue);
  };

        function int_to_dword($n)
        {
                return chr($n & 255).chr(($n >> 8) & 255).chr(($n >> 16) & 255).chr(($n >> 24) & 255);
        }
        function int_to_word($n)
        {
                return chr($n & 255).chr(($n >> 8) & 255);
        }


function decbin8($d)
{
return decbinx($d,8);
};

function decbinx($d,$n)
{
$bin=decbin($d);
$sbin=strlen($bin);
for($j=0;$j<$n-$sbin;$j++)
 $bin="0$bin";
return $bin;
};

function inttobyte($n)
{
return chr($n);
};

//实例方法

 代码如下 复制代码
include_once('bmp.php');
$image=imagecreatefrombmp('a.bmp');
imagejpeg($image,'a.jpeg');
imagedestroy($image);

 

 代码如下 复制代码

function my_file_get_contents($url, $timeout=30) {
 if ( function_exists('curl_init') ) 
 {
  $ch = curl_init();
  curl_setopt ($ch, curlopt_url, $url);
  curl_setopt ($ch, curlopt_returntransfer, 1);
  curl_setopt ($ch, curlopt_connecttimeout, $timeout);
  $file_contents = curl_exec($ch);
  curl_close($ch);
 }
 else if ( ini_get('allow_url_fopen') == 1 || strtolower(ini_get('allow_url_fopen')) == 'on' )   
 {
  $file_contents = @file_get_contents($url);
 }
 else
 {
  $file_contents = '';
 }
 return $file_contents;
}


 

 代码如下 复制代码

function get_remote($body,$title){

 $img_array = array(); 
 $img_path = realpath("../../../upfile/news/").'/'.date("y/m/d/"); //采集远程图片保存地址
 //die($img_path);
 $img_rpath='/upfile/news/'.date("y/m/d/");  //设置访问地址
 $body = stripslashes(strtolower($body)); 
 preg_match_all("/(src|src)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|png))/isu",$body,$img_array); 
 $img_array = array_unique($img_array[2]); 
 foreach ($img_array as $key => $value) {
  $get_file = my_file_get_contents($value,60);
  $filetime = time();   
  $filename = date("ymdhis",$filetime).rand(1,999).'.'.substr($value,-3,3);
  if(empty($get_file)){
   @sleep(10);
   $get_file = my_file_get_contents($value,30);
   if(empty($get_file)){
    $body = preg_replace("/".addcslashes($value,"/")."/isu", '/notfound.jpg', $body);
    continue;
    }
  }
  if(!empty($get_file) ){
   if( mkdirs($img_path) )
   {
    $fp = fopen($img_path.$filename,"w");
    if(fwrite($fp,$get_file)){         
     $body = preg_replace("/".addcslashes($value,"/")."/isu", $img_rpath.$filename, $body);
    }
    fclose($fp);
    @sleep(6);
   }   
  }    
 
 }
 $body =str_replace("<img","<img ",$body); 
 return $body;
 
}

function mkdirs($dir)
{
 if(!is_dir($dir)){
  if(!mkdirs(dirname($dir))){
   return false;}
  if(!mkdir($dir,0777)){
   return false;}
 }
 return true;
}

$str ='fasfsdafsa<img src=http://filesimg.111cn.net/2010/03/2010062300391582.jpg />';
echo get_remote($str,'图片');

本站原创教程转请注明来源,文件上传代码会这样做。

php教程 静态文件生成类
defined('php教程ox') or die(header("http/1.1 403 not forbidden"));           
          
class include_createstatic            
{           
               
    private $htmlpath = '';           
    private $path = '';           
    public $monthpath = '';           
    private $listpath = '';           
    private $content = '';           
    private $filename = '';           
    private $extname = '.html';           
               
    public function createhtml($type,$desname,$content)           
    {           
        $this->htmlpath = getappinf('htmlpath');           
        if (!file_exists($this->htmlpath))           
        {           
            @mkdir($this->htmlpath);           
        }           
        $this->path = $this->htmlpath.$this->monthpath.'/';           
        if (!file_exists($this->path))           
        {           
            @mkdir($this->path);           
        }           
        $this->listpath = $this->htmlpath.'list/';           
        if (!file_exists($this->listpath))           
        {           
            @mkdir($this->listpath);           
        }           
        switch ($type)           
        {           
            case 'index':           
                $this->filename = $desname;           
                break;           
            case 'list':           
                $this->filename = $this->listpath.$desname;           
                break;           
            case 'view':           
                $this->filename = $this->path.$desname;           
                break;           
        }           
        $this->filename .= $this->extname;           
        $this->content = $content;           
    }           
               
    public function write()           
    {           
        $fp=fopen($this->filename,'wb');           
        if (!is_writable($this->filename))           
        {           
            return false;           
        }           
        if (!fwrite($fp,$this->content))           
        {           
            return false;           
        }           
        fclose($fp);           
        return $this->filename;           
    }           
}      

//方法二

if(file_exists("./index.htm"))//看静态index.htm文件是否存在
{
$time=time();
//文件修改时间和现在时间相差?的话,直接导向htm文件,否则重新生成htm
if(time-filemtime("./index.htm")< 600)
{
header("location:classhtml/main.htm");
}
}
//在你的开始处加入ob_start();
ob_start();
//首页内容,就是你的动态部分了
//在结尾加入ob_end_clean(),并把本页输出到一个变量中
$temp=ob_get_contents();
ob_end_clean();
//写入文件
$fp=fopen("./index.htm",'w');
fwrite(fp,temp) or die('写文件错误');
//echo"生成html完成!";

实现篇
一般情况,用php教程实现上传进度条就下面两种方法:
1.apc扩展(作者是php教程的创始人,5.2后php已经加入apc扩展)
2.pecl扩展模块 uploadprogress
不论是apc还是uploadprogress,都需要编译源码教程,因为原有的php函数根本不可能读取到临时文件夹里的东西。下面来看如何使用以及关键的代码:apc实现方法:
1.安装apc
2.配置php.ini,设置参数 apc.rfc1867=1
3.关键代码:

 代码如下 复制代码

if ($_server['request_method'] == ‘post’) {  //上传请求
$status = apc_fetch(’upload_’ . $_post['apc_upload_progress']);
$status['done'] = 1;
echo json_encode($status);  //输出给用户端页面里的ajax调用,相关文档请自己寻找
exit;
} elseif (isset($_get['progress_key'])) {   //读取上传进度
$status = apc_fetch(’upload_’.$_get['progress_key']);
echo json_encode($status);
exit;
}

uploadprogress实现方法:
1.使用pecl 安装uploadprogress
2.php.ini里面设置 uploadprogress.file.filename_template = “/tmp/upd_%s.txt”
3.关键代码:

 代码如下 复制代码
if($_server['request_method']==’post’) {
if (is_uploaded_file($_files['upfile']['tmp_name'])) {
$upload_dir = ‘your_path/’;
$ext        = strrchr($_files['video']['name'], ‘.’);
$sessid     = $_post['upload_identifier'] ;
$tmpfile    = $upload_dir . $sessid;
$sessfile   = $upload_dir . $sessid .$ext;
if (move_uploaded_file($_files['upfile']['tmp_name'],$tmpfile)) {
//上传成功
}
}

 

[!--infotagslink--]

相关文章

  • 使用PHP+JavaScript将HTML页面转换为图片的实例分享

    这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Photoshop古装美女图片转为工笔画效果制作教程

    今天小编在这里就来给各位Photoshop的这一款软件的使用者们来说说把古装美女图片转为细腻的工笔画效果的制作教程,各位想知道方法的使用者们,那么下面就快来跟着小编一...2016-09-14
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮

    jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮...2013-10-13
  • 利用JS实现点击按钮后图片自动切换的简单方法

    下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
  • Photoshop枪战电影海报图片制作教程

    Photoshop的这一款软件小编相信很多的人都已经是使用过了吧,那么今天小编在这里就给大家带来了用Photoshop软件制作枪战电影海报的教程,想知道制作步骤的玩家们,那么下面...2016-09-14
  • js实现上传图片及时预览

    这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
  • python opencv通过4坐标剪裁图片

    图片剪裁是常用的方法,那么如何通过4坐标剪裁图片,本文就详细的来介绍一下,感兴趣的小伙伴们可以参考一下...2021-06-04
  • 使用PHP下载CSS文件中的图片的代码

    共享一段使用PHP下载CSS文件中的图片的代码 复制代码 代码如下: <?php //note 设置PHP超时时间 set_time_limit(0); //note 取得样式文件内容 $styleFileContent = file_get_contents('images/style.css'); //not...2013-10-04
  • PHP swfupload图片上传的实例代码

    PHP代码如下:复制代码 代码如下:if (isset($_FILES["Filedata"]) || !is_uploaded_file($_FILES["Filedata"]["tmp_name"]) || $_FILES["Filedata"]["error"] != 0) { $upload_file = $_FILES['Filedata']; $fil...2013-10-04
  • 微信小程序如何获取图片宽度与高度

    这篇文章主要给大家介绍了关于微信小程序如何获取图片宽度与高度的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
  • C#中图片旋转和翻转(RotateFlipType)用法分析

    这篇文章主要介绍了C#中图片旋转和翻转(RotateFlipType)用法,实例分析了C#图片旋转及翻转Image.RotateFlip方法属性的常用设置技巧,需要的朋友可以参考下...2020-06-25
  • ps怎么制作图片阴影效果

    ps软件是现在很多人比较喜欢的,有着非常不错的使用效果,这次文章就给大家介绍下ps怎么制作图片阴影效果,还不知道制作方法的赶紧来看看。 ps图片阴影效果怎么做方法/...2017-07-06
  • OpenCV如何去除图片中的阴影的实现

    这篇文章主要介绍了OpenCV如何去除图片中的阴影的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-29
  • C#将图片和字节流互相转换并显示到页面上

    本文主要介绍用C#实现图片转换成字节流,字节流转换成图片,并根据图片路径返回图片的字节流,有需要的朋友可以参考下...2020-06-25
  • JavaScript 如何禁止用户保存图片

    这篇文章主要介绍了JavaScript 如何禁止用户保存图片,帮助大家完成需求,更好的理解和使用JavaScript,感兴趣的朋友可以了解下...2020-11-19
  • php上传图片学习笔记与心得

    我们在php中上传文件就必须使用#_FILE变量了,这个自动全局变量 $_FILES 从 PHP 4.1.0 版本开始被支持。在这之前,从 4.0.0 版本开始,PHP 支持 $HTTP_POST_FILES 数组。这...2016-11-25
  • JS实现图片的不间断连续滚动的简单实例

    下面小编就为大家带来一篇JS实现图片的不间断连续滚动的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-06-12