如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
上传
/** * 单文件上传 * @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; }