zoukankan      html  css  js  c++  java
  • ios端浏览器拍照上传到服务器,图片被旋转90度 php 解决方案

    1、可以通过前端进行解决,本案例通过后端解决的

    判断请求的浏览器的ua,如果是ios浏览器则进行90度旋转

    重点来了:

    必须确保检测的图片是ios设备上传的完整图片,不要在前端压缩过的,因为压缩后的图片都是通过Canvas重新生成的新图片,所以不包含相关扩展信息

    如果前端要压缩请在前端获取扩展信息或者直接在前端转角度(从原始文件中获取扩展信息)

    前端处理方案 请百度 exif.js

    if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone')||strpos($_SERVER['HTTP_USER_AGENT'], 'iPad')){
    		    try{
    		    	$picAddr=$_FILES['file']['tmp_name'];
    				$exif = @exif_read_data($picAddr);
    				if(isset($exif['Orientation'])){
    					$image = imagecreatefromjpeg($picAddr);
                        if($exif['Orientation'] == 3) {
                            $result = imagerotate($image, 180, 0);
                            imagejpeg($result, $picAddr, 100);
                        } elseif($exif['Orientation'] == 6) {
                            $result = imagerotate($image, -90, 0);
                            imagejpeg($result, $picAddr, 100);
                        } elseif($exif['Orientation'] == 8) {
                            $result = imagerotate($image, 90, 0);
                            imagejpeg($result, $picAddr, 100);
                        }
                        isset($result) && imagedestroy($result);
                        imagedestroy($image);
    				}
    			}catch(Exception $e){
    				//echo $e->getMessage();
    			}
    }
    

      

    没踩坑一次 进步一点点

  • 相关阅读:
    Word Search
    Subsets
    Combinations
    Search a 2D Matrix
    求比正整数N大的最小正整数M,且M与N的二进制表示中有相同数目的1
    Set Matrix Zeroes
    Unity学习笔记—— 常用脚本函数
    学习 各个数据结构
    unity调用 安卓相册
    设置 相机跟随 主角及视角 滑动
  • 原文地址:https://www.cnblogs.com/pxjbk/p/11869436.html
Copyright © 2011-2022 走看看