Minulla on kaksi filua. Ensimmäisessä on input-kenttä, jonne valitaan tiedosto, jonka haluan tutkia. Se lähettää tiedoston(?) lataaja.php:lle. Miksi tuo getimagesize ei toimi tuossa? Haluaisin siis, että pystysin valitsemaan kuvan tuohon input kenttään omalta tietokoneeltani ja sitten tuo lataaja.php antaisi siitä nuo getimagesize tiedot.
<br><br><form action="lataaja.php" method="post" ENCTYPE="multipart/form-data">
Tiedosto: <input type="file" name="file" size="30"> <input type="submit" value="Lähetä">
</form>
<?php $tiedot = getimagesize($_FILES['file']['tmp_name']); echo "<br>Tiedot: $tiedot, $tiedot[0], $tiedot[1], $tiedot[2]"; ?>
Kyl toi mul toimi. Ei anna mitään virheilmoitusta? Katso mitä tuo $_FILES-taulukko pitää sisällään: print_r($_FILES) ja pastea vaikka tänne.
Laitoin tuon print_r($_FILES) ruon echon alapuolelle.
Tiedot: , , , Array ( [file] => Array ( [name] => kuva.jpg [type] => image/jpeg [tmp_name] => /tmp/phpPIALMO [error] => 0 [size] => 47518 ) )
Kuva tulee ainakin perille. Kokeileppa mitä tuo getimagesize palauttaa:
print_r(getimagesize($_FILES['file']['tmp_name']));
<?php $tiedot = getimagesize($_FILES['file']['tmp_name']); echo "<br>Tiedot: $tiedot, $tiedot[0], $tiedot[1], $tiedot[2]"; echo "<br>"; print_r($_FILES); echo "<br> getimagesize palauttaa: "; print_r(getimagesize($_FILES['file']['tmp_name'])); ?>
Näytölle tulee:
Tiedot: , , , Array ( [file] => Array ( [name] => motocross240x320.jpg [type] => image/jpeg [tmp_name] => /tmp/phpOOWWWs [error] => 0 [size] => 47518 ) ) getimagesize palauttaa:
Palvelimena on MBNET ja siellä lukee "MBinternetissä on käytössä php:n versio 4.3.10", voiko tässä olla jotain "häikkää", että tämä versio ei tue tms.?
Eli ilmeisesti getimagesize() ei tunnista kuvaa kuvaksi? Kokeile jollain toisella kuvalla (varmaan oletkin jo kokeillut) tai koita ladata se kuvasi tuonne: http://ajv.lautatarha.com/testing/getimagesize.
Edit: jos en ihan väärin muista, niin joskus on ollut PHP:n funktioilla vaikeuksia käsitellä joitain kamerakännykän jpg-kuvia.
Tuonne meni kyllä ihan oikein... Onpas erikoista.
edit. Kopioin tuon sourcen MBnettiin ja siellä se tulostaa taas puutteellisesti:
Array ( [file] => Array ( [name] => motocross240x320.jpg [type] => image/jpeg [tmp_name] => /tmp/phpaxMvzK [error] => 0 [size] => 47518 ) )
Vika lienee sitten MBNETissä, kannattaa laittaa mailia sinne ylläpitoon. Vihjase samalla, että päivittävät PHP5:een.
Mbnetissä lienee safemode käytössä (ja/tai open_basedir) jolloin et voi lukea /tmp-kansiosta. move_uploaded_filellä pitää siis ensin siirtää tiedosto toisaalle ja lukea vasta sitten.
Aihe on jo aika vanha, joten et voi enää vastata siihen.