多图片上传,和图片缩略图,生成缩略图,图片压缩

作者:Liaodeity - 2015年03月09日

图片上传

/**
* [upfilepic2 图片上传,支持多图上传]
* @param  [type]  $pic [图片上传源]
* @param  [type]  $url [保存目录]
* @param  integer $w   [压缩最大宽度]
* @param  integer $h   [压缩最大高度]
* @return [type]       [返回图片名称,多图用逗号分割]
*/
function upfilepic2($pic,$url,$w=600,$h=600){
                $upload_file=$_FILES[$pic]["name"];        //获取文件名
                $upload_tmp_file=$_FILES[$pic]["tmp_name"];      //获取临时文件名
                $upload_filetype=$_FILES[$pic]["type"];    //获取文件类型
                $upload_status=$_FILES[$pic]["error"];  //获取文件出错情况
                foreach ($_FILES['fileToUpload']['error'] as $key => $error) {
                        if($error == 'UPLOAD_ERR_OK'){
                                if(is_uploaded_file($upload_tmp_file[$key])){
                                        if(!function_exists('fileExtName')){
                                                function fileExtName ($fStr){/*取得文件的扩展名并返回*/
                                                        $retval="";
                                                        $pt=strrpos($fStr,".");/*取得.句号在文件名中的位置*/
                                                        if($pt) $retval=substr($fStr,$pt+1,strlen($fStr)-$pt);/*从.句号后面开始,取三个字符,就是扩展名*/
                                                        return($retval);
                                                }
                                        }
                                        $ext=fileExtName($_FILES[$pic]['name'][$key]);/*调用上面的函数,并取得的扩展名*/
                                        $ext=strtolower($ext);
                                        $upload_dir=realpath('.').$url; //指定文件存储路径
                                        if(!file_exists($upload_dir)){ 
                                           mkdir($upload_dir);
                                        }
                                        if(!in_array($ext,array("jpg","gif","png"))){
                                                //return "exterror";
                                                echo "<script>alert('上传的文件类型有误!');window.history.back();</script>";
                                                exit;
                                        }
                                        $time=date('YmdHis').rand(1,1000);
                                        $filename=$time.".".$ext;
                                        $upload_path=$upload_dir."\\".$filename;
                                        if(is_uploaded_file($upload_tmp_file[$key]) ){
                                                if(move_uploaded_file($upload_tmp_file[$key],$upload_path)){
                                                        $upload_path=strtr($upload_path,"\\","/");
                                                        //$map_smallername=$upload_dir."\\"."s".$time.".".$ext;
                                                        makethumb($upload_path,$upload_path,$w,$h);
                                                        //makethumb($upload_path,$map_smallername,"240","180");
                                                        // return $filename;
                                                        if($key == 0){
                                                                $name = $filename;
                                                        }else{
                                                                $name .=",".$filename;
                                                        }
                                                }else{ 
                                                        return "";
                                                }
                                        }
                                }else{  
                                        return ""; 
                                }
                        }
                }
                return $name;
        }


图片压缩图

function makethumb($srcFile,$dstFile,$dstW,$dstH,$rate=80,$markwords=null,$markimage=null) 
        { 
                $data = GetImageSize($srcFile); 
                switch($data[2]) 
                { 
                case 1: 
                $im=@ImageCreateFromGIF($srcFile); 
                break; 
                case 2: 
                $im=@ImageCreateFromJPEG($srcFile); 
                break; 
                case 3: 
                $im=@ImageCreateFromPNG($srcFile); 
                break; 
                } 
                if(!$im) return False; 
                $srcW=ImageSX($im); 
                $srcH=ImageSY($im); 
                $dstX=0; 
                $dstY=0; 
                if ($srcW*$dstH>$srcH*$dstW) 
                { 
                $fdstH = round($srcH*$dstW/$srcW); 
                $dstY = floor(($dstH-$fdstH)/2); 
                $fdstW = $dstW; 
                } 
                else 
                { 
                $fdstW = round($srcW*$dstH/$srcH); 
                $dstX = floor(($dstW-$fdstW)/2); 
                $fdstH = $dstH; 
                } 
                $ni=ImageCreateTrueColor($fdstW,$fdstH); 
                $dstX=($dstX<0)?0:$dstX; 
                $dstY=($dstX<0)?0:$dstY; 
                $dstX=($dstX>($dstW/2))?floor($dstW/2):$dstX; 
                $dstY=($dstY>($dstH/2))?floor($dstH/s):$dstY; 
                $white = ImageColorAllocate($ni,255,255,255); 
                $black = ImageColorAllocate($ni,0,0,0); 
                imagefilledrectangle($ni,0,0,$dstW,$dstH,$white);// 填充背景色 
                ImageCopyResized($ni,$im,0,0,0,0,$fdstW,$fdstH,$srcW,$srcH); 
                if($markwords!=null) 
                { 
                $markwords=iconv("gb2312","UTF-8",$markwords); 
                //转换文字编码 
                ImageTTFText($ni,20,30,450,560,$black,"simhei.ttf",$markwords); //写入文字水印 
                //参数依次为,文字大小|偏转度|横坐标|纵坐标|文字颜色|文字类型|文字内容 
                } 
                elseif($markimage!=null) 
                { 
                $wimage_data = GetImageSize($markimage); 
                switch($wimage_data[2]) 
                { 
                case 1: 
                $wimage=@ImageCreateFromGIF($markimage); 
                break; 
                case 2: 
                $wimage=@ImageCreateFromJPEG($markimage); 
                break; 
                case 3: 
                $wimage=@ImageCreateFromPNG($markimage); 
                break; 
                } 
                //imagecopy($ni,$wimage,500,560,0,0,88,31); //写入图片水印,水印图片大小默认为88*31 
                imagedestroy($wimage); 
                } 
                ImageJpeg($ni,$dstFile,$rate); 
                //ImageJpeg($ni,$srcFile,$rate); 
                imagedestroy($im); 
                imagedestroy($ni); 
        }



本文作者: Liaodeity

本文链接: https://www.jianbaizhan.com/article/76

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!