Miten onnistuu tiedostotyypin selvittäminen php:lla? Eli tässä tapauksessa pitäisi selvittää onko ladattava tiedosto .pdf vaiko jokin muu. Kiitos vastauksista.
if (mime_content_type($tiedostonimi) == "application/pdf") // tiedosto on PDF else //tiedosto ei ole PDF
lainaus:
Call to undefined function: mime_content_type()
ei toimi mun php:n versiossa (4.3.11)? onko mitään vaihtoehtoja?
https://www.php.net/manual/en/function.mime-content-type.php:
See Also
Fileinfo for a replacement
Ja onpa tuolla user comments -osiossa varmaan sata ja yksi muuta tapaa.
Toimiihan?
https://www.php.net/manual/en/function.mime-content-type.php:
mime_content_type
(PHP 4 >= 4.3.0, PHP 5)
Jostain syystä minullakaan ei toimi (php: 4.4.4).
Samaa valittelee kuin Sebulla.
Itselläkin tarve selvitellä tiedostotyyppi tai tarkemmin onko kyseessä kuva.
Alla ratkaisu jonka pitäis toimia ilman erillisiä moduuleja.
Kritisoikaa ankaralla kädellä.
Jäynis kirjoitti:
Kritisoikaa ankaralla kädellä.
Tuohan ei tarkasta onko kyseessä kuva, vaan onko tiedoston pääte joku em. Toki on hyvä tarkistaa myös tiedostopääte, mutta varsinainen kuvan tarkastus kannattaa tehdä get_image_size()-funktiolla.
Kiitos nopeasta vastauksesta.
Itselläni sovelluksessani voidaan luottaa tiedostopäätteeseen
mutta esittämäsi tapa on kyllä reilusti parempi.
PHP on vielä opetteluasteella joten kysyisin vielä että onko
seuraava pätkä "oikea" tapa.
<?php $tiedosto="0001.jpg"; if(@getimagesize($tiedosto)) { echo "Kuvahan se"; } ?>
Blaze kirjoitti:
Toimiihan?
https://www.php.net/manual/en/function.mime-content-type.php:
mime_content_type
(PHP 4 >= 4.3.0, PHP 5)
Vaatii tietty että Mimetype-laajennus on asennettu ja otettu käyttöön.
Jäynis kirjoitti:
PHP on vielä opetteluasteella joten kysyisin vielä että onko seuraava pätkä "oikea" tapa.
Näyttää ihan toimivalta koodilta. Niin kuin varmaan huomasit, funktio tunnistaa vaikka mitä erikoisia kuvamuotoja, eli joissain tilanteissa voi joutua vielä erikseen rajoittamaan (aiemman koodisi tapaan) kelpaavia kuvamuotoja.
Aihe on jo aika vanha, joten et voi enää vastata siihen.