欢迎光临
感谢一路有你

图片的上传以及图片的读取类

如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
 

上传

/**
 * 单文件上传
 * @param string $file  文件路径
 * @param int $size     上传文件限制的大小
 * @param array $type   上传文件的类型
 * @param string $uploads   保存的路径
 * @return bool|string      返回上传保存后的路径
 */
function uploadFile($file = "myfile",$size = 10485760,$type = array('image'),$uploads = "../../uploads")
{
//    print_r($_FILES);die;
//判断表单是否为空
    if(empty($_FILES)){
        echo "请检查表单属性";
        return false;
    }
    $fileName = $_FILES[$file]['name'];//文件名
    $tmpName = $_FILES[$file]['tmp_name'];//临时存放的目录
    $fileError = $_FILES[$file]['error'];
    $fileType = $_FILES[$file]['type'];
    $fileSize = $_FILES[$file]['size'];

    if($fileError>0){
        switch($fileError){
            case 1:
                echo "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值";
                break;
            case 2:
                echo "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值";
                break;
            case 3:
                echo "文件只有部分被上传";
                break;
            case 4:
                echo "没有文件被上传";
                break;
            case 6:
                echo "找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进";
                break;
            case 7:
                echo "文件写入失败。PHP 5.1.0 引进";
                break;
        }
    }
    //判断类型
    list($maintype)=explode('/',$fileType);
    if(!in_array($maintype,$type)){
        echo "文件类型错误";
        return false;
    }
    //判断大小
    if($fileSize > $size){
        echo "文件超出限制大小";
        return false;
    }
    $ext = pathinfo($fileName,PATHINFO_EXTENSION);//文件类型
    $saveName =date('Ymd').uniqid().'.'.$ext;
    //生成保存路径
    $path = rtrim($uploads,'/')."/".date('Y/m/d/');
    if(!file_exists($path)){
        mkdir($path,0777,true);
    }
    $saveFile = $path .$saveName;
    if(move_uploaded_file($tmpName,$saveFile)){
//        echo "上传成功";
        return $saveFile;
    }else{
        echo "上传失败啊";
        return false;
    }
}

缩放

/**
 * 图片缩放
 * @param $imgfile   图片路径
 * @param int $zoom_w   缩放的宽度
 * @param int $zoom_h   缩放的高度
 * @return bool|string  返回缩放后的文件名
 */
function zoomImg ($imgfile,$zoom_w = 200, $zoom_h = 200)
{
    $imginfo = getimagesize($imgfile);
    if(!$imginfo){
        echo "非法图片";
        return false;
    }
    list($src_w,$src_h)=$imginfo;
    $mime=$imginfo['mime'];
    list($type, $subtype) = explode('/' ,$mime);
    $open_img= 'imagecreatefrom'.$subtype;
    $save_img='image'.$subtype;
    $img = $open_img($imgfile);
///判断长宽使用
    if($src_w > $src_h){
        //  $zoom_h /$src_h = $zoom_w /$src_w;
        $zoom_h  = $zoom_w / $src_w * $src_h;
        $pre = ($zoom_w);
    }else{
        $zoom_w = $zoom_h / $src_h * $src_w;
        $pre = ($zoom_h);
    }
    $zoom_img =imagecreatetruecolor($zoom_w,$zoom_h);//创建缩放画布
    //imagecopyresampled(缩放资源,原图资源,缩放x,缩放y,原图x,原图y,缩放宽,缩放高,原图宽,原图高)
    imagecopyresampled($zoom_img, $img, 0,0, 0,0, $zoom_w, $zoom_h, $src_w, $src_h);//缩放图片
    $zoom_img_name = dirname($imgfile).'/'.$pre.'_'.basename($imgfile);//缩略图名
    $save_img($zoom_img,$zoom_img_name); //保存图片
    //销毁
    imagedestroy($img);
//    return $zoom_img_name;
    imagedestroy($zoom_img);
    return $zoom_img_name;//输出缩放后的文件名
}

读取

//图片显示地址拼接
function get_img_url($url,$basename,$size=50)
{
    switch($size){
        case 50:
            $pre='50_';
            break;
        case 150:
            $pre='150_';
            break;
        case 250:
            $pre='350_';
            break;
        case 350:
            $pre='350_';
            break;
        default:
            $pre=null;
            break;
    }
    $img_path = rtrim($url,'/').'/';
    $img_path.=substr($basename,0,4).'/';
    $img_path.=substr($basename,4,2).'/';
    $img_path.=substr($basename,6,2).'/';

   return $img_path.=$pre.$basename;
}

 

 

赞(0) 打赏
未经允许不得转载:王明昌博客 » 图片的上传以及图片的读取类
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏