Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedostotyypin tarkistus

Pawe [18.11.2007 16:28:59]

#

Ystäväni pyysi minua tekemään pienen skriptin, joka tulostaa kuvia, jos niiden tiedostotyyppi on oikea. Tiedostotyypin kuuluisi olla GIF tai PNG. Ja nyt kysymys: miten tarkistan tiedostotyypin? Olen ajatellut systeemiä näin:

<?php
if 'tiedostotyyppi' = GIF {
echo <img src="kuva.gif">}

elseif 'tiedostotyyppi' = PNG {
echo <img src="kuva.png">}

else {
echo "Kuvia ei löydy"}

Eli 'tiedostotyyppi' paikalle tulisi tuo kuinka tiedostotyyppi tarkistetaan. Älysikö joku?

jgz [18.11.2007 16:37:31]

#

getimagesize() funktiolla tuo onnistuu. Katsopas tämä linkki:
https://www.php.net/manual/fi/function.getimagesize.php

Pawe [18.11.2007 16:58:28]

#

Kiitos. No entäpä jos on monta eri kuvaa jotka pitäisi saada tulostettua?

<?php
if 'tiedostotyyppi'  = GIF {
echo <img src="kuva.gif"></br>
echo <img src="kuva2.gif">
}

Meneekös se tuolla samalla getimagesize():llä?

jgz [18.11.2007 17:13:49]

#

Onko nyt niin, että sinulla on jossain kansiossa tiedostoja ja haluat tulostaa sieltä vain tietyn tyyppiset kuvat? Jos näin on, niin käyt vain loopissa kaikki tiedostot läpi ja tarkastat getimagesize() funktion avulla mitkä tiedostoista on haluamasi tyyppisiä kuvia ja tulostat ne. Voi toki olla, että ymmärsin ihan väärin mitä yrität.

Teuro [18.11.2007 22:53:26]

#

Yksi tapa on tietty lukea vaikka globilla kaikki kansion tiedostot ja vaikka explodata tiedostonimi ja tarkastaa arrayn toinen alkio. Toiminee ihan hyvin, tosin tuolla getimagesizella voi tehdä muitakin tarkastuksia ja tulostella muillakin ehdoilla.

tsuriga [18.11.2007 23:09:33]

#

strrpos on nopeampi vaihtoehto kuin explode, path_info selkeämpi.

jgz [19.11.2007 06:31:25]

#

Syy miksi itse ainakin käyttäisin tuota getimagesize() on se, että se tiedostopääte ei varsinaisesti kerro, onko tiedosto kuva vai ei. Kuka vaan voi nimetä tiedoston uudelleen ja vaihtaa sen. Lisäksi jos tiedoston päätettä tarkistaa vaikkapa tuolla explode funktiolla kannattaa tarkistaa viimeinen alkio ei toista, koska tiedostonimi voi sisältää useita pisteitä, jolloinka se toinen alkio ei olekaan tiedoston pääte.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta