思路很大一部分是原创的,但也有一些是COPY网络的,写得不够规范,还请各位大大不要见笑,同时给小弟些意见。
开始第一步:
创建文件夹,布局:
annex:附件(该目录下存放上传的原图片)
|— smallimg:存放缩略图片
|— mark:存放水印图片
include:存放类文件,字体(本程序代码使用的是:04B_08__.TTF)
|— upfile.php:集成简单上传,生成缩略图及水印的类文件信息
|— 04B_08__.TTF:字体文件
test.php:测试文件
进入第二步:
代码研究,希望各位能好好看看,小弟也是初学者,同时也希望各位能提出宝贵意见,小弟定会虚心领教的(写得不好不要拿鸡蛋砸偶噢)
以下为引用的内容:
------------------------------------------------------------------------------- upfile.php
<?php class UPImages { var annexFolder = "annex";//附件存放点,默认为:annex var smallFolder = "smallimg";//缩略图存放路径,注:必须是放在 annexFolder下的子目录,默认为:smallimg var markFolder = "mark";//水印图片存放处 var upFileType = "jpg gif png";//上传的类型,默认为:jpg gif png rar zip var upFileMax = 1024;//上传大小限制,单位是“KB”,默认为:1024KB var fontType;//字体 var maxWidth = 500; //图片最大宽度 var maxHeight = 600; //图片最大高度
function UPImages(annexFolder,smallFolder,includeFolder) { this->annexFolder = annexFolder; this->smallFolder = smallFolder; this->fontType = includeFolder."/04B_08__.TTF"; }
function upLoad(inputName) { imageName = time();//设定当前时间为图片名称 if(@empty(_FILES[inputName]["name"])) die(error("没有上传图片信息,请确认")); name = explode(".",_FILES[inputName]["name"]);//将上传前的文件以“.”分开取得文件类型 imgCount = count(name);//获得截取的数量 imgType = name[imgCount-1];//取得文件的类型 if(strpos(this->upFileType,imgType) === false) die(error("上传文件类型仅支持 ".this->upFileType." 不支持 ".imgType)); photo = imageName.".".imgType;//写入数据库的文件名 uploadFile = this->annexFolder."/".photo;//上传后的文件名称 upFileok = move_uploaded_file(_FILES[inputName]["tmp_name"],uploadFile); if(upFileok) { imgSize = _FILES[inputName]["size"]; kSize = round(imgSize/1024); if(kSize > (this->upFileMax*1024)) { @unlink(uploadFile); die(error("上传文件超过 ".this->upFileMax."KB")); } } else { die(error("上传图片失败,请确认你的上传文件不超过 upFileMax KB 或上传时间超时")); } return photo; }
|