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