PHP exif bekapcsolása után, nem lehet feltölteni fotót, ami tartalmaz exif adatokat.

Mivel nem értek ehhez a területhez, így lehet bénán fogok fogalmazni.

Vannak fotók, amik fekvő képek alapból, de valamivel a tulajdonosuk megformázta úgy, hogy az exif adatok szerint az függőlegesen kell megjelenjen.

Amíg a szolgáltatóm nem kapcsolta be, addig megjelent az ilyen fotó a feltöltés után, viszont fektetve és nem állítva. A PHP exif bekapcsolása után, az ilyen exif-el ellátott fotók fel sem tölthetők. Az ilyen fotók újra szerkesztése után már feltölthető, ha kiszedjük az exif adatokat a fotóból.

Ilyenkor merre keressem a megoldást, hogy az exiffel ellátott fotók jól jelenjenek meg és feltölthetők legyenek php felületen.

Hozzászólások

Ha hibás EXIF tag van a képben, akkor a PHP-modul megfekszik rajta. Ne tedd a feltöltés feltételévé, hogy olvasható legyen az EXIF.

Nem tudom, hogy dolgozod fel az adatokat, vagy milyen library-t használsz, de én valami ilyesmi logika alapján indulnék:

  1. Megnézni, helyes-e az exif data, ha nem, marad fektetve a kép
  2. Megnézni, van-e utalás arra, hogy hogyan kell a képet megjeleníteni, ha nem, marad fektetve a kép
  3. Megjeleníteni a képet az exif adatok alapján

Gondolom van PHP-ben is valami hiba-/exceptionkezelés, hogy ha hibás az exif, még ne essen tőle hanyatt az egész app. :)

Fejbevágja a usert a gépe :-)

Jó, persze, igazad van. Keresem a hibaüzenetet a rendszertől, de semmit sem találok ezzel kapcsolatban. Annyi a jelenség, hogy kiírja a rendszer egy felbukkanó ablakban: valami hiba történt a feltöltés közben, frissítsek, majd próbáljam meg újra a feltöltést.

Fogalmam sincsen, hogy pontosan hogy zajlik itt a folyamat, amit tudok, hogy feltöltésre kerül a szerverre a kép, majd azonnal vissza is adja egy ablakban, amennyiben rendben lezajlik a feltöltés. Mivel figyelembe kellene vegye a rendszer a tájolást, így most valamiért ez nem jól történik meg akkor, amikor a tájolást kellene eldöntenie a rendszernek. Amit még nmindig nem tudok, hogy kellene-e valamit hangolni a php exif-en, vagy az mindig állandó és a képfeldolgozó részt kellene a programozójának mókolnia?

Szerintem oda kellene adnod ezt a problemat valakinek aki ert a php programozashoz, mert a kommentjeidbol az tunik ki hogy sajnos neked ehhez neked nincs kompetenciad, igy viszont semmire nem fogsz jutni hiaba forumozol itt. Meg kell nezni az error logban hogy mi tortenik amikor ez a problema jelentkezik es javitani a kodot.

Nem a legszebb megoldas, de egyszer, amikor par perc alatt osszedobtam egy scriptet PHP-ban, ami jpeg-ekbol az exif headerbe letarolt poziciokat gyujtotte ki, en igy csinaltam:

...
  $exif = @exif_read_data($fname, 'IFD0');
  if ($exif===false)
    continue;
  $exif = @exif_read_data($fname, 0, true);
  if(!array_key_exists('GPS',$exif)||!array_key_exists('GPSLatitude',$exif['GPS']))
    continue;
...

Igazabol annyi a lenyeg, hogy az exif_read_data hibat adhat, ezt a @ "elrejti" (nem all fejre tole), de a visszateresi ertekebol kiderul, hogy volt-e hiba. Nalam a hibakezeles annyi volt, hogy attertem a kovetkezo kepre (azert van continue, a ciklus a parameterul kapott kepeken megy vegig), nalad itt a default (exif es forgatas nelkuli) valtozatnak kene jonnie.

A strange game. The only winning move is not to play. How about a nice game of chess?

Ha baromságot kérdezek, elnézést, de soha nem volt közöm PHP-hoz.

Nincs PHP-hoz valami remote debugger, amivel kb. 15 másodperc lenne kideríteni, hogy mi történik valójában? Ezek a "valami történt" jellegű dolgok legtöbbször annyira triviálisak, ha végig tudsz rajta lépkedni soronként, hogy jó eséllyel hamarabb meglenne a megoldás, mint ahogy megírtad a kérdést a fórumra.

Az a baj, hogy nekem sincs ebbem elég tudásom, plusz egy komplex rendszer egy kicsinyke szegmense ez, másrészt az is lehet, hogy ez nem hiba, csak szarul lett elvezetve, gondolok itt arra, hogy egy hibás exif eldobható és nem kell vele foglalkozni ha.... és ez a "ha" itt az, ami programozási hiba is lehet. Összességében még olvasgatok ebben, mert a programozó a rendszergazdára mutogat, a rendszergazda a programozóra.

A rendszergazdával emeltess log szintet. Aztán tölts fel egymás után egy jó és egy rossz képet háromszor. Majd kérd el a logot.