<?php
//print_r($_FILES["upfile"]);
$height = $_POST["h"];
$width = $_POST["w"];
$pos_x = $_POST["x1"];
$pos_y = $_POST["y1"];
//image_file是你的input的name名字
if(@ is_uploaded_file($_FILES['image_file']['tmp_name'])){
echo "111";
$upfile=$_FILES["image_file"];
//获取数组里面的值
$name=$upfile["name"];//上传文件的文件名
$type=$upfile["type"];//上传文件的类型
$size=$upfile["size"];//上传文件的大小
$tmp_name=$upfile["tmp_name"];//上传文件的临时存放路径
//判断是否为图片
switch ($type){
case 'image/pjpeg':$okType=true;
break;
case 'image/jpeg':$okType=true;
break;
case 'image/png':$okType=true;
break;
}
if($okType){
/**
* 0:文件上传成功<br/>
* 1:超过了文件大小,在php.ini文件中设置<br/>
* 2:超过了文件的大小MAX_FILE_SIZE选项指定的值<br/>
* 3:文件只有部分被上传<br/>
* 4:没有文件被上传<br/>
* 5:上传文件大小为0
*/
$error=$upfile["error"];//上传后系统返回的值
cut_img($tmp_name, $width, $height, $name, $type);
$des = $name; //移动到目的地址
//move_uploaded_file($tmp_name,$des);
$destination=$name;
echo "================<br/>";
echo "上传信息:<br/>";
if($error==0){
echo "文件上传成功啦!";
echo "<br>图片预览:<br>";
echo "<img src=".$destination.">";
}elseif ($error==1){
echo "超过了文件大小,在php.ini文件中设置";
}elseif ($error==2){
echo "超过了文件的大小MAX_FILE_SIZE选项指定的值";
}elseif ($error==3){
echo "文件只有部分被上传";
}elseif ($error==4){
echo "没有文件被上传";
}else{
echo "上传文件大小为0";
}
}else{
echo "请上传jpg,gif,png等格式的图片!";
}
}
function cut_img($img,$w,$h, $save_address, $type_img){ //要裁减的图片,宽度,高度
echo $type_img;
if($type_img == "image/pjpeg" || $type_img == "image/jpeg")
$s = imagecreatefromjpeg($img);
else if($type_img == "image/png")
$s = imagecreatefrompng($img);
$w = imagesx($s)<$w?imagesx($s):$w; //如果图片的宽比要求的小,则以原图宽为准
$h = imagesy($s)<$w?imagesy($s):$h;
$bg = imagecreatetruecolor($w,$h); //创建$w*$h的空白图像
if(imagecopy($bg,$s,0,0,0,0,$w,$h)){
if(imagejpeg($bg,$save_address)){ //将生成的图片保存到img/new_img.jpg
echo "success";
}else{
echo "false";
}
}else{
echo "false";
}
//imagecopy ($dst_im,$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h);
imagedestroy($s); //关闭图片
imagedestroy($bg);
//这里只写了几个主要操作,你可以再加上开始裁减的座标,也就是imagecopy中的第5,第6两个参数,那么在判断$w和$h的地方也要相应的剪掉开始没算进去的部分,
//然后保存路径是否存在的判断等
}
?>
php 图片上传与裁剪
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.