蝙蝠岛资源网 Design By www.hbtsch.com
本文实例为大家分享了php上传类,供大家参考,具体内容如下
<""; //错误信息
var $savePath = ""; //保存路径
function __construct($inputName,$allowType="",$allowSize="",$saveDir="",$isRename=true){
if(empty($inputName)){
$this->chk_err(-1); //无传入控件名
}else{
$this->inputName = $inputName;
}
if(!empty($allowType)) $this->allowType = $allowType;
if(!empty($allowSize)) $this->allowSize = $allowSize;
if(!empty($saveDir)) $this->saveDir = $saveDir;
if(!empty($isRename)) $this->isRename = $isRename;
}
function is_uploaded(){
if(empty($_FILES[$this->inputName]['name'])){
$this->chk_err(4); //没有文件被上传
}else{
if(is_uploaded_file($_FILES[$this->inputName]['tmp_name'])){
return true;
}else{
$this->chk_err(-2); //文件上传不合法
}
}
}
function chk_type(){
if(!in_array($_FILES[$this->inputName]['type'],$this->allowType)){
$this->chk_err(-3); //上传的文件类型不被允许
}else{
return true;
}
}
function chk_size(){
if($_FILES[$this->inputName]['size'] > $this->allowSize){
$this->chk_(-4); //上传的文件过大
}else{
return true;
}
}
function move_uploaded(){ //移动上传文件
if(!$this->is_uploaded()){
return false;
}
if(!$this->chk_size()){
return false;
}
if(!$this->chk_type()){
return false;
}
//重命名
if($this->isRename){
$arrTmp = pathinfo($_FILES[$this->inputName]['name']);
$extension = strtolower($arrTmp['extension']);
$file_newname = date("YmdHis").rand(1000,9999)."00.".$extension; //重命名新文件, 00表示为上传的为原图
}else{
$file_newname = $_FILES[$this->inputName]['name'];
}
if(!file_exists($this->saveDir)){ //判断保存目录是否存在
mkdir($this->saveDir,0777,true); //建立保存目录
}
//移动文件
$result = move_uploaded_file($_FILES[$this->inputName]['tmp_name'],$this->saveDir."/".$file_newname);
if($result){
$path = $this->savePath = $this->saveDir.$file_newname; //文件的成功保存路径
return $path;
}else{
$this->chk_err($_FILES[$this->inputName]['error']);
}
}
//判断出错信息
function chk_err($errID){
$this->errID = $errID;
switch($this->errID){
case -4:
$this->errMsg = "上传的文件过大";
break;
case -3:
$this->errMsg = "上传的文件类型不被允许";
break;
case -2:
$this->errMsg = "文件上传不合法";
break;
case -1:
$this->errMsg = "无控件名传入";
break;
case 1:
$this->errMsg = '上传的文件超出了php.ini中upload_max_filesize设定的最大值';
break;
case 2:
$this->errMsg = '上传文件的大小超过了HTML表单中MAX_FILE_SIZE选项指定的值';
break;
case 3:
$this->errMsg = '文件只有部分被上传';
break;
case 4:
$this->errMsg = '没有文件被上传';
break;
default:
break;
}
return false;
}
function get_errMsg(){
echo $this->errMsg; //输出错误信息
}
/**
+----------------------------------------------------------
* 取得图像信息
*
+----------------------------------------------------------
* @static
* @access public
+----------------------------------------------------------
* @param string $image 图像文件名
+----------------------------------------------------------
* @return mixed
+----------------------------------------------------------
*/
function getImageInfo($img) {
$imageInfo = getimagesize($img);
if( $imageInfo!== false) {
$imageType = strtolower(substr(image_type_to_extension($imageInfo[2]),1));
$imageSize = filesize($img);
$info = array(
"width" =>$imageInfo[0],
"height" =>$imageInfo[1],
"type" =>$imageType,
"size" =>$imageSize,
"mime" =>$imageInfo['mime'],
);
return $info;
}else {
return false;
}
}
/**
+----------------------------------------------------------
* 生成缩略图
+----------------------------------------------------------
* @static
* @access public
+----------------------------------------------------------
* @param string $image 原图
* @param string $type 图像格式
* @param string $thumbname 缩略图文件名
* @param string $maxWidth 宽度
* @param string $maxHeight 高度
* @param string $position 缩略图保存目录
* @param boolean $interlace 启用隔行扫描
* @param boolean $is_save 是否保留原图
+----------------------------------------------------------
* @return void
+----------------------------------------------------------
*/
function thumb($image,$is_save=true,$suofang=0,$type='',$maxWidth=500,$maxHeight=500,$interlace=true){
// 获取原图信息
$info = $this->getImageInfo($image);
if($info !== false) {
$srcWidth = $info['width'];
$srcHeight = $info['height'];
$type = empty($type)"ImageCopyResampled"))
imagecopyresampled($thumbImg, $srcImg, 0, 0, 0, 0, $width, $height, $srcWidth,$srcHeight);
else
imagecopyresized($thumbImg, $srcImg, 0, 0, 0, 0, $width, $height, $srcWidth,$srcHeight);
if('gif'==$type || 'png'==$type) {
//imagealphablending($thumbImg, false);//取消默认的混色模式
//imagesavealpha($thumbImg,true);//设定保存完整的 alpha 通道信息
$background_color = imagecolorallocate($thumbImg, 0,255,0); // 指派一个绿色
imagecolortransparent($thumbImg,$background_color); // 设置为透明色,若注释掉该行则输出绿色的图
}
// 对jpeg图形设置隔行扫描
if('jpg'==$type || 'jpeg'==$type) imageinterlace($thumbImg,$interlace);
//$gray=ImageColorAllocate($thumbImg,255,0,0);
//ImageString($thumbImg,2,5,5,"ThinkPHP",$gray);
// 生成图片
$imageFun = 'image'.($type=='jpg'"00.".$type) * (-1);
$_type = substr($image,-4);
$length = ($type != $_type "01.".$type,$length); //大头像
$thumbname02 = substr_replace($image,"02.".$type,$length); //小头像
$imageFun($thumbImg,$thumbname01,100);
$imageFun($thumbImg,$thumbname02,100);
$thumbImg01 = imagecreatetruecolor(190,195);
imagecopyresampled($thumbImg01,$thumbImg,0,0,$_POST['x'],$_POST['y'],190,195,$_POST['w'],$_POST['h']);
$thumbImg02 = imagecreatetruecolor(48,48);
imagecopyresampled($thumbImg02,$thumbImg,0,0,$_POST['x'],$_POST['y'],48,48,$_POST['w'],$_POST['h']);
$imageFun($thumbImg01,$thumbname01,100);
$imageFun($thumbImg02,$thumbname02,100);
// unlink($image);
imagedestroy($thumbImg01);
imagedestroy($thumbImg02);
imagedestroy($thumbImg);
imagedestroy($srcImg);
return array('big' => $thumbname01 , 'small' => $thumbname02); //返回包含大小头像路径的数组
}else{
if($is_save == false){ //缩略图覆盖原图,缩略图的路径还是原图路径
$imageFun($thumbImg,$image,100);
}else{
$thumbname03 = substr_replace($image,"03.".$type,$length); //缩略图与原图同时存在,
$imageFun($thumbImg,$thumbname03,100);
imagedestroy($thumbImg);
imagedestroy($srcImg);
return $thumbname03 ; //返回缩略图的路径,字符串
}
}
}
return false;
}
}
以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。
标签:
php,上传类
蝙蝠岛资源网 Design By www.hbtsch.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
蝙蝠岛资源网 Design By www.hbtsch.com
暂无php简单的上传类分享的评论...
更新日志
2025年10月27日
2025年10月27日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]