// html 的header 內要加上此段
<script type="text/javascript" src="../js/jQueryRotate.js"></script>


//圖片的上傳與旋轉

<input type="file" name="photoName" id="photoName" value="" size="20"  onchange="previewImage(this)" class="Bword02" style="width:260px;border:1px solid #000000;" />
<div id="preview" style="height:320px;"> 
		<img id="imghead" src="<?=$pic;?>" width="240" height="300" style='border:6px double #ccc'/>
</div>
				
<div><span class="Bword02">旋轉:</span>
	<input type="button" id="turnPhoto" value="90" class="btn11" 
      onclick="$('#imghead').rotate(+90);document.getElementById('degrees').value=90;"  />
	<input type="button" id="turnPhoto" value="-90" class="btn11" 
      onclick="$('#imghead').rotate(-90);document.getElementById('degrees').value=270;" />
	<input type="button" id="turnPhoto" value="0" class="btn11" 
      onclick="$('#imghead').rotate(0);document.getElementById('degrees').value=0;" />
	<input type="button" id="turnPhoto" value="180" class="btn11" 
      onclick="$('#imghead').rotate(180);document.getElementById('degrees').value=180;" />
	<input type="hidden" name="degrees" id="degrees" value="0" readonly size="3" />
</div>




// php 端的圖片上傳處理及旋轉

$temp = $_FILES['photoName']["tmp_name"];
$extension = explode('.',$_FILES['photoName']['name']);
$ext = $extension[1]; // 副檔名

$photoName = $mid.".".$ext;
	
if ( file_exists('../files/'.$photoName) ){   // 上船前先刪檔
	unlink('../files/'.$photoName);
}

if ( move_uploaded_file($temp,'../files/'.$photoName) ){
	echo "success!";	  
	$degrees = strval(360 - intval($degrees));  // 調整jquery 轉動的角度為 php 的角度
	
	if($ext == 'png' || $ext == 'PNG'){
		header('Content-type: image/png');
		$source = imagecreatefrompng('../files/'.$photoName);
		$bgColor = imagecolorallocatealpha($source, 255, 255, 255, 127);
		$rotate = imagerotate($source, $degrees, $bgColor);
		imagesavealpha($rotate, true);
		imagepng($rotate,'../files/'.$photoName);
	}

	if($ext == 'jpg' || $ext == 'jpeg' || $ext == 'JPG'){
		header('Content-type: image/jpeg');
		$source = imagecreatefromjpeg('../files/'.$photoName);
		$rotate = imagerotate($source, $degrees, 0);
		imagejpeg($rotate,'../files/'.$photoName);
	}

	imagedestroy($source);
	imagedestroy($rotate);
				
}else{
	echo "failure!";
}