Skocz do zawartości

Funkcja: Czy to jest w 100% plik graficzny?


Eldoka

Rekomendowane odpowiedzi

witam,

mam taką funkcję i dzisiaj zauważyłem, że IE różnie interpretuje typy danych.

Proszę o sprawdzenie czy taka funkcja jest ok i czy nie ma błędów jeśli chodzi o taką funkcję:

sprawdź czy format zgadza się (tylko obrazy) i czy nie jest to inny plik.

function is_img($f) {
IF($f['type'] == 'image/png' or $f['type'] == 'image/jpeg' or $f['type'] == 'image/gif' or $f['type'] == 'image/pjpeg' or $f['type'] == 'image/jpg')
{
	$x = getimagesize($f['tmp_name']);
	IF(!is_array($x) or $x[0] < 2)
	{
		return false; //dobre rozszerzenie ale to nie jest plik graficzny
	}
	ELSE
	{
		return true; //dobre rozszerzenie i plik jest obrazkiem
	}
}
else
{
return false;
}
}

forum zdrowotne - dodaj ogłoszenie za darmo!

naprawiasz elektronikę? - dodaj ogłoszenie za darmo!

masz kwiaciarnię? - dodaj ogłoszenie za darmo!

Odnośnik do komentarza
Udostępnij na innych stronach

@mam taką funkcję i dzisiaj zauważyłem, że IE różnie interpretuje typy danych.

Jeśli różnice są w interpretacji przez różnych klientów PHP nie ma z tym nic wspólnego.

Typ MIME np image/pjpeg skojarzony z rozszerzeniem wcale nie gwarantuje, że będzie to właśnie ten typ graficzny.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

ja stosuje 'sztuczke' z przypisaniem, to kawalek kodu wyciagajacego obrazki z jakiegos folderu i przypisujacego im max szerokosc/wysokosc do wyswietlenia

if($g = getimagesize($dir.$file)) {
// tu jezeli obrazek
if ($g[0] > 80) $w = 80; else $w = $q[0];
if ($g[1] > $g[0] && $g[1] > 80) $w = intval(($g[0]/$g[1]) * 80);
}

wiele funkcji php zwraca false i mozna to stosowac, poza tym jak widac zmienna $g jest odrazu przypisana

Odnośnik do komentarza
Udostępnij na innych stronach

@mam taką funkcję i dzisiaj zauważyłem, że IE różnie interpretuje typy danych.

Jeśli różnice są w interpretacji przez różnych klientów PHP nie ma z tym nic wspólnego.

Typ MIME np image/pjpeg skojarzony z rozszerzeniem wcale nie gwarantuje, że będzie to właśnie ten typ graficzny.

wcześniej bez tych zaznaczonych na czerwono w firefoxie i operze było spoko a w IE 8 zwracało FALSE w każdym przypadku! (wgrywałem plik jpg)

IF($f['type'] == 'image/png' or $f['type'] == 'image/jpeg' or $f['type'] == 'image/gif' or $f['type'] == 'image/pjpeg' or $f['type'] == 'image/jpg')

@kayman: A sprawdzasz typ MIME, czy tylko tyle co napisałeś?

forum zdrowotne - dodaj ogłoszenie za darmo!

naprawiasz elektronikę? - dodaj ogłoszenie za darmo!

masz kwiaciarnię? - dodaj ogłoszenie za darmo!

Odnośnik do komentarza
Udostępnij na innych stronach

mozesz zrobic tak jak bardzo zalezy ci na faktycznym MIME

https://www.php.net/manual/pl/function.imag...-type.php#89467

w moim przykladzie wystarcza mi to , ze odczytywany plik jest obrazkiem a nie np. plikiem php lub html bo w tym samym folderze moga sie takie znajdowac

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności