<?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 圖片上傳與裁剪
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.