Miért nem működik nekem ez a képfeltöltés?
elseif(($_FILES['file']['type'] != 'image/jpeg') || ($_FILES['file']['type'] != 'image/png') || ($_FILES['file']['type'] != 'image/ico') || ($_FILES['file']['type'] != 'image/jpg') ){
echo "Csak képet lehet feltölteni! (jpeg,jpg,ico,png formátumban)";
}
else
{
maga a feltöltés
}
--------------------------------------------------------
ha az elseifben csak egy utasítást adok meg , akkor minden működik. ha || (or)-al több utasítást adok meg , akkor egyszerűen nem működik.
echo val kiírattam minden egyes próbálkozáskor a $_FILES['file']['type']-t és itt modjuk ha jpeg-el próbálkoztam akkor kiírta ,hogy image/jpeg és beadta a hibaüzenetet... és ezt nem értem pontosan ,hogy miért. Köszi.
A feltételed így szól:
HA nem JPEG
VAGY nem PNG
VAGY nem ICO
VAGY nem JPG
Akkor hibaüzenet.
Ha JPG-t adsz meg, akkor is igaz lesz az, hogy nem PNG.
ÉS-t használj VAGY helyett.
Valóban rosszak a feltételek.
Valamint ez a módszer egyáltalán nem garantálja azt, hogy valóban csak képet lehessen feltölteni.
A szerver a fájl típusát ugyanis a böngésző által küldött, igencsak könnyen "hamisítható" paraméterek alapján adja vissza a $_FILES tömbben.
Ez sem jó.
Pl egy php fájl elejébe tegyed egy 1x1-es jpg kódját.
Hopp, máris minden jpg-nek fogja látni.
A kiterjesztés vizsgálat hatékonyabb, mivel akkor ha mást is raknak fel, nagy ügy, a szerver nem futtatja le.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!