Php Jquery手机定向上传照片

Php Jquery手机定向上传照片,php,image,mobile,upload,orientation,Php,Image,Mobile,Upload,Orientation,我正试图使用jquery mobile和php从手机上传一些照片,但上传照片后,即使我的照片在iphone上是纵向格式,也总是以横向格式 所以我不知道哪一个必须旋转或不旋转 谢谢,我也有同样的问题。我的解决方案有点快,有点脏,但你看: 编写一个在加载图像时调用的函数,检查图像是否要在横向中渲染 $(".imgTile").load(function(){ if(this.width>this.height){ $(this).css("transform

我正试图使用jquery mobile和php从手机上传一些照片,但上传照片后,即使我的照片在iphone上是纵向格式,也总是以横向格式

所以我不知道哪一个必须旋转或不旋转


谢谢,我也有同样的问题。我的解决方案有点快,有点脏,但你看:

编写一个在加载图像时调用的函数,检查图像是否要在横向中渲染

 $(".imgTile").load(function(){     
    if(this.width>this.height){
        $(this).css("transform","rotate(90deg)");
        $(this).css("top",".7em");
        $(this).css("left","-.5em");
        }
     }
两个注意事项:我发现我必须进行一些重新定位,以使旋转后的图像正确地适合listview(因此设置了“顶部”和“左侧”属性),因此您可能需要根据自己的需要对此进行调整。第二,不同浏览器有不同的css“transform”属性,因此您可能需要将每个属性设置为具有跨浏览器支持。这里有一个关于这些属性的指南

编辑:我花了一些时间,想出了一个更为坚实的解决方案

首先,使用php读取exif标记:

$exif=exif_read_data("uploads/$fileExtension.jpg",0,true);
$orient=$exif["IFD0"]["Orientation"];
对EXIF标准的一些研究表明,iPhone将产生三种情况:

1--不需要旋转 3--需要180度旋转 6——要求旋转90度

然后使用php的shell_exec运行以下shell脚本,该脚本用于销毁EXIF头,并将图像物理旋转指定的数量:

#!/bin/bash                                                                     
    for i in $[filename]
            do convert -rotate $[number of degrees] $i $i
    done

mogrify -strip $[filename]
现在,图像将被正确地定向到任何地方,并且确实读取EXIF头的浏览器不会以任何方式显示它

剩下要做的唯一一件事就是根据标记值使用正确的参数执行脚本

希望这有帮助