上传图片

原生上传图片

上传图片 $dir_type:文件夹名称    $name :图片name

 

function uploadfile_common($dir_type,$name){

    if($_SESSION['admin_id']){
        if ((($_FILES[$name]["type"] == "image/gif")
                || ($_FILES[$name]["type"] == "image/jpeg")
                || ($_FILES[$name]["type"] == "image/jpeg")
                || ($_FILES[$name]["type"] == "image/bmp")
                || ($_FILES[$name]["type"] == "image/png"))
            && ($_FILES[$name]["size"] < 10000 * 1024))
        {
            if ($_FILES[$name]["error"] > 0)
            {
                $arr = array('status'=>404,'data'=>$_FILES[$name]["error"]);
                return $arr;
            }
            else
            {
                $filename = filename_common($_FILES[$name]["name"],$dir_type.'/');
                move_uploaded_file($_FILES[$name]["tmp_name"],iconv("UTF-8", "gb2312", ROOT_PATH.$filename));
                $arr = array('status'=>200,'data'=>$filename);
                return $arr;
            }
        }
        else
        {
            $arr = array('status'=>404,'data'=>'格式不正确或图片大于10M');
            return $arr;
        }
    }else{
        $arr = array('status'=>400,'data'=>'身份验证不通过');
        return $arr;
    }

}

/*
生成文件名
 */
function filename_common($filename,$dirname){
    $d_name = '/public/upload/'.$dirname.date('Y').'/'.date('m-d');
    $filename = $d_name.'/'.time().rand(1000,9999).'_'.$filename;
    if(!file_exists(ROOT_PATH.$d_name)){
        $dir = iconv("UTF-8", "GBK", ROOT_PATH.$d_name);
        mkdir($dir,0777,true);
        if(file_exists($filename)){
            filename($filename,$dirname);
        }else{
            return $filename;
        }
    }else{
        if(file_exists($filename)){
            filename($filename,$dirname);
        }else{
            return $filename;
        }
    }

}

 

//生成缩略图
 public function image_resize($imagedata, $width, $height, $per = 0) {
    // 1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM
 
    // 获取图像信息
    list($bigWidth, $bigHight, $bigType) = getimagesizefromstring($imagedata);
 
    // 缩放比例
    if ($per > 0) {
        $width  = $bigWidth * $per;
        $height = $bigHight * $per;
    }
 
    // 创建缩略图画板
    $block = imagecreatetruecolor($width, $height);
 
    // 启用混色模式
    imagealphablending($block, false);
 
    // 保存PNG alpha通道信息
    imagesavealpha($block, true);
 
    // 创建原图画板
    $bigImg = imagecreatefromstring($imagedata);
 
    // 缩放
    imagecopyresampled($block, $bigImg, 0, 0, 0, 0, $width, $height, $bigWidth, $bigHight);
 
    // 生成临时文件名
    $tmpFilename = tempnam(sys_get_temp_dir(), 'image_');
 
    // 保存
    switch ($bigType) {
        case 1: imagegif($block, $tmpFilename);
            break;
 
        case 2: imagejpeg($block, $tmpFilename);
            break;
 
        case 3: imagepng($block, $tmpFilename);
            break;
    }
 
    // 销毁
    imagedestroy($block);

    // $bigType_arr = array('gif','jpg','png');
    // if(!$bigType_arr[$bigType-1]){
    //     return array('status'=>404);
    // }else{
    //     return array('status'=>200,'tmpFilename'=>$tmpFilename,'bigType'=>$bigType_arr[$bigType-1]);
    // }
 
    $image = file_get_contents($tmpFilename);
 
    unlink($tmpFilename);
 
    return $image;
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值