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();
}
}

  

没踩坑一次 进步一点点

最新文章

  1. iOS之触摸及手势
  2. jquery+php+mysql实现Ajax省市县三级联动
  3. netty 解决TCP粘包与拆包问题(一)
  4. css重点章节复习—布局-边框-边距-浮动 (部分)
  5. android 学习随笔二十八(应用小知识点小结 )
  6. Java API —— File类
  7. 实验一:点亮led
  8. 无效的 URI: 未能分析证书颁发机构/主机
  9. linux 配置静态IP
  10. 第3章文件I/O总结
  11. Flux是一个Facebook团队的前端开发架构
  12. hdu2141AC代码分享
  13. 再起航,我的学习笔记之JavaScript设计模式05(简单工程模式)
  14. API得到Windows版本
  15. python崩溃到现在居然还没有放弃的Day07
  16. 每天一个linux命令(4):mkdir
  17. PHP 传值操作和传地址操作
  18. 邮局加强版:四边形不等式优化DP
  19. 【Naive Splay Template】
  20. Linux环境下$开头的相关变量的含义

热门文章

  1. 并不对劲的CF1245E&F:Cleaning Ladders
  2. Codeforces 1247F. Tree Factory
  3. github骚操作
  4. poj 1224
  5. hdu 6047
  6. java方法可变参数研究
  7. luogu题解 P3629 【[APIO2010]巡逻】树的直径变式
  8. java中long类型转换为int类型
  9. mybatis+Oracle 批量插入数据,有数据做更新操作
  10. AS中Git操作和Git工作流