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 ;
}?>
代码如下 | 复制代码 |
function imagebmp($img,$file="",$rle=0)
$transparent=imagecolortransparent($img);
if($colorcount==0) {$colorcount=0; $bitcount=24;};
$zbytek=(4-($width/(8/$bitcount))%4)%4; if($bitcount<24) $palsize=pow(2,$bitcount)*4; $size=(floor($width/(8/$bitcount))+$zbytek)*$height+54; // bitmap file header $cc=$colorcount; for($p=0;$p<$colortotal;$p++) $ct=$colortotal;
for($y=$height-1;$y>=0;$y--) if((strlen($bwrite)<8)and(strlen($bwrite)!=0)) if(($rle==1)and($bitcount==8)) if(($t+5)%$width==0)
for($y=$height-1;$y>=0;$y--) }; if($file!="")
function imagecreatefrombmp($file) $f=fopen($file,"r"); if($header=="bm") $sizebitmapinfoheader=freaddword($f); if($bibitcount<24)
for($y=$height-1;$y>=0;$y--) };
$pocetb=0; while(true) $echoit=false; if($echoit)echo "prefix: $prefix suffix: $suffix<br>"; while(!(($prefix==0)and($suffix==0))) for($x=0;$x<strlen($data);$x++) }; };
/*while(!feof($f)) $echoit=false; if($echoit)echo "prefix: $prefix suffix: $suffix<br>"; while(!(($prefix==0)and($suffix==0))) $currentbit=0; for($x=0;$x<strlen($data);$x++) }; };
for($y=$height-1;$y>=0;$y--) };
/* function freadbyte($f) function freadword($f)
function freaddword($f)
function retbits($byte,$start,$len) };
$currentbit=0;
function rgbtohex($red,$green,$blue) function int_to_dword($n)
function decbinx($d,$n) function inttobyte($n) |
//实例方法
代码如下 | 复制代码 |
include_once('bmp.php'); $image=imagecreatefrombmp('a.bmp'); imagejpeg($image,'a.jpeg'); imagedestroy($image); |
代码如下 | 复制代码 |
function my_file_get_contents($url, $timeout=30) {
|
代码如下 | 复制代码 |
function get_remote($body,$title){ $img_array = array(); function mkdirs($dir) |
$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’) { //上传请求 |
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)) { //上传成功 } } |
相关文章
使用PHP+JavaScript将HTML页面转换为图片的实例分享
这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19- php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 今天小编在这里就来给各位Photoshop的这一款软件的使用者们来说说把古装美女图片转为细腻的工笔画效果的制作教程,各位想知道方法的使用者们,那么下面就快来跟着小编一...2016-09-14
- 这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
- 下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮...2013-10-13- 这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
- Photoshop的这一款软件小编相信很多的人都已经是使用过了吧,那么今天小编在这里就给大家带来了用Photoshop软件制作枪战电影海报的教程,想知道制作步骤的玩家们,那么下面...2016-09-14
- 图片剪裁是常用的方法,那么如何通过4坐标剪裁图片,本文就详细的来介绍一下,感兴趣的小伙伴们可以参考一下...2021-06-04
- 共享一段使用PHP下载CSS文件中的图片的代码 复制代码 代码如下: <?php //note 设置PHP超时时间 set_time_limit(0); //note 取得样式文件内容 $styleFileContent = file_get_contents('images/style.css'); //not...2013-10-04
- 这篇文章主要给大家介绍了关于微信小程序如何获取图片宽度与高度的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
- PHP代码如下:复制代码 代码如下:if (isset($_FILES["Filedata"]) || !is_uploaded_file($_FILES["Filedata"]["tmp_name"]) || $_FILES["Filedata"]["error"] != 0) { $upload_file = $_FILES['Filedata']; $fil...2013-10-04
- ps软件是现在很多人比较喜欢的,有着非常不错的使用效果,这次文章就给大家介绍下ps怎么制作图片阴影效果,还不知道制作方法的赶紧来看看。 ps图片阴影效果怎么做方法/...2017-07-06
C#中图片旋转和翻转(RotateFlipType)用法分析
这篇文章主要介绍了C#中图片旋转和翻转(RotateFlipType)用法,实例分析了C#图片旋转及翻转Image.RotateFlip方法属性的常用设置技巧,需要的朋友可以参考下...2020-06-25- 这篇文章主要介绍了OpenCV如何去除图片中的阴影的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-29
- 这篇文章主要介绍了JavaScript 如何禁止用户保存图片,帮助大家完成需求,更好的理解和使用JavaScript,感兴趣的朋友可以了解下...2020-11-19
- 本文主要介绍用C#实现图片转换成字节流,字节流转换成图片,并根据图片路径返回图片的字节流,有需要的朋友可以参考下...2020-06-25
- 我们在php中上传文件就必须使用#_FILE变量了,这个自动全局变量 $_FILES 从 PHP 4.1.0 版本开始被支持。在这之前,从 4.0.0 版本开始,PHP 支持 $HTTP_POST_FILES 数组。这...2016-11-25
- 下面小编就为大家带来一篇JS实现图片的不间断连续滚动的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-06-12