2017-03-20 1 views
0

Ich versuche, ein Problem zu beheben, wo, wenn ein Porträtbild von einem Handy hochgeladen wird, es nicht als die richtige Ausrichtung speichert, wenn es auf einem Desktop/Browser geöffnet wird.Bild-Upload nicht abrufen "Orientation" exif data

ich den Code unten bin mit den EXIF-Daten, um es auf die richtige Ausrichtung zu ändern, aber ich habe Probleme:

$exif = exif_read_data($_FILES["file"]["tmp_name"], 0, true); 

Error: Unexpected token a in JSON at position 0; array(4) { 
     ["FILE"]=> 
     array(6) { 
     ["FileName"]=> 
     string(11) "php18A7.tmp" 
     ["FileDateTime"]=> 
     int(1490020599) 
     ["FileSize"]=> 
     int(382988) 
     ["FileType"]=> 
     int(2) 
     ["MimeType"]=> 
     string(10) "image/jpeg" 
     ["SectionsFound"]=> 
     string(19) "ANY_TAG, IFD0, EXIF" 
     } 
     ["COMPUTED"]=> 
     array(5) { 
     ["html"]=> 
     string(26) "width="2041" height="3628"" 
     ["Height"]=> 
     int(3628) 
     ["Width"]=> 
     int(2041) 
     ["IsColor"]=> 
     int(1) 
     ["ByteOrderMotorola"]=> 
     int(1) 
     } 
     ["IFD0"]=> 
     array(6) { 
     ["ACDComment"]=> 
     string(37) "Windows Photo Editor 10.0.10011.16384" 
     ["Orientation"]=> 
     int(8) 
     ["Software"]=> 
     string(37) "Windows Photo Editor 10.0.10011.16384" 
     ["DateTime"]=> 
     string(19) "2017:03:20 14:32:13" 
     ["Exif_IFD_Pointer"]=> 
     int(2242) 
     ["UndefinedTag:0xEA1C"]=> 
     string(2060) "� 
     } 
    } 

Der Fehler, der oben gezeigt ist ein var_dump($exif), wenn ein Upload auf einem Desktop erfolgt Browser. Wie gezeigt, ruft es die "Orientierungs" -Daten ab, aber wenn ich es auf einem Mobiltelefon mache, ruft es nur das "FILE" -Array und das "COMPUTER" -Array ab und enthält keines der "ORIENTATION" -Daten.

Antwort

0

Lösung

erkannte ich, dass es jedes Mal zu dem Punkt, wo es versucht, die EXIF-Daten unter Verwendung von exif_read_data() die Daten zu lesen war schon weg.

Ich führte zum Abrufen der Exif-Daten innerhalb des JavaScript stattdessen mit einer Bibliothek namens exif.js. Weitere Erklärung gefunden here.