Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Funkcja getimagesize() nie działa na niektóre zdjęcia
Forum PHP.pl > Forum > Przedszkole
jack1142
Witam,
mam otóż taki problem, że podczas testowania skryptów natrafiłem na problem, który uniemożliwia mi pobranie rozdzielczości z niektórych zdjęć (póki co znalazłem tylko jedno).
Dla zobrazowania stworzyłem prosty kod:
  1. <?php
  2. $test = getimagesize($_SERVER['DOCUMENT_ROOT'] . '/test.jpg'); //ścieżka do pliku (poprawna)
  3. var_dump($test); //sprawdzam zawartość zmiennej

Wynikiem użycia funkcji var_dump jest "bool(false)". Dzieje się to tylko z jednym zdjęciem, do którego link umieszczam tutaj: http://przyrodadyro.hekko24.pl/w3-4.jpg
Proszę albo o pomoc w rozwiązaniu problemu z tą funkcją, albo o inna funkcję z tymi zastosowaniami, która będzie działać i jest równie skuteczna (wydajność).
mar1aczi
Zakładając, że ten problematyczny obrazek masz w tym samym katalogu co i skrypt php to samo masz bez "$_SERVER['DOCUMENT_ROOT']"? W przeglądarce tem obrazek otwiera się - jego uprawnienia są poprawne?
jack1142
To nie jest problem ze ścieżką, bo z innymi zdjęciami to działa bez problemu.
nospor
mar1aczi zadal ci dwa pytania. Naprawde tak ciezko odpowiedziec na oba i nie marnowac czasu osob, ktore starają ci sie pomóc?
jack1142
Tak mam to samo bez "$_SERVER['DOCUMENT_ROOT']". Obrazek bez problemu otwiera się w przeglądarce. W oryginalnej wersji skryptu plik jest wgrywany przez przeglądarkę i z wszystkich innych plików można pobrać rozdzielczość, więc zakładam, że nie jest to problem z uprawnieniami.
mar1aczi
Format Twojego problematycznego pliku indentyfikowany jest przez "file" jako
Kod
JPEG image data, JFIF standard 1.01, thumbnail 255x219
co może wskazywać, że zawiera miniaturę(?) Niestety, nie jestem zagłębiony na tyle w grafice, aby to potwierdzić/zaprzeczyć smile.gif

Jeśli użyjesz
Kod
getimagesize($imgfile, $imginfo);
to dla tego problematycznego obrazka var_dump($imginfo) wyświetla "JFIFH" natomiast dla tych, dla których getimagesize działa var_dump($imginfo) wyświetla "JFIFHH".
By uniknąć problemów, że raz działa a raz nie możesz skorzystać z tego
Kod
$image = imagecreatefromstring(file_get_contents($imgfile));
$w = imagesx($image);
$h = imagesy($image);
jack1142
Jest jakaś znacząca różnica w szybkości? Załóżmy przy 100 zdjęciach? Zakładając, że zmienna nazwana u Ciebie $image i tak jest tworzona.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.