// name attribuutissa on määritelty. // toisten hakasulkeiden välissä oleva 'name' paljastaa // alkuperäisen tiedoston nimen $_FILES['kuvatiedosto']['name'] = str_replace(' ', '_', $_FILES['kuvatiedosto']['name']); $_FILES['kuvatiedosto']['name'] = str_replace('$', '_', $_FILES['kuvatiedosto']['name']); $_FILES['kuvatiedosto']['name'] = str_replace('ä', 'a', $_FILES['kuvatiedosto']['name']); $_FILES['kuvatiedosto']['name'] = str_replace('ö', 'o', $_FILES['kuvatiedosto']['name']); $_FILES['kuvatiedosto']['name'] = str_replace('Ä', 'a', $_FILES['kuvatiedosto']['name']); $_FILES['kuvatiedosto']['name'] = str_replace('Ö', 'o', $_FILES['kuvatiedosto']['name']); // muutetaan määritellyt merkit sopivimmiksi // syntaksi: str_replace('korvattava', 'korvaaja', // 'merkkijono josta etsitään korvattavia merkkejä') $tiedoston_tyyppi = strrchr($_FILES['kuvatiedosto']['name'], "."); // strrchr('merkkijono josta etsitään', 'merkki') // strrchr() funktio etsii annetusta merkkijonosta // viimeisimmän annetun merkin ja palauttaa merkkijonon // lopun tästä merkistä lähtien if(!in_array($tiedoston_tyyppi, $tunniste)) // in_array() funktio etsii annettua arvoa halutusta // taulukosta. jos arvo löytyy funktio palauttaa arvon true // huutomerkki ennen funktion nimeä on negaatio eli kääntää // ehdon muotoon: "jos ei löydy" { $error = "Lähettämäsi tiedosto ei ole oikean tyyppinen, kelvollisia tiedostoja ovat: "; foreach($tunniste as $jeejee) { $error .= "$jeejee "; } die("$error" . $_FILES['kuvatiedosto']['name']); } // haetaan foreach silmukalla $tunniste taulukosta kelvolliset // tiedosto tunnisteet ja lisätään ne $error muuttujassa // olevan tekstin perään. die() funktio lopettaa php-ohjelman // ajamisen ja tulostaa virheilmoituksen $tallennettava = $kuvahekemisto . $_FILES['kuvatiedosto']['name']; // $tallennettava muuttujaan asetetaan tulevan tiedoston koko // polku if(file_exists($tallennettava)) { die("Saman niminen tiedosto on jo olemassa. Nimeä tiedosto uudelleen ja yritä uudestaan."); } // jos palvelimelta löytyy jo saman niminen tiedosto // ilmoitetaan virheestä if($_FILES['kuvatiedosto']['size'] > $max_tiedosto_koko) { die("Tiedosto on liian suuri. Suurin sallittu koko on: $max_tiedosto_koko tavua"); } // jos tiedoston koko on suurempi kuin maksimi koko // ilmoitetaan virheestä. if($_FILES['kuvatiedosto']['name'] != "") { copy($_FILES['kuvatiedosto']['tmp_name'], $kuvahakemisto . $_FILES['kuvatiedosto']['name']) or die("Tiedoston kopionti ei onnistunut!"); // kopiodaan väliaikaisella nimellä ollut tiedosto oikeaan // paikkaan oikealla nimellä. Jos kopionti ei onnistu // tulostuu virheilmoitus // --------------- lisätty koodi alkaa ------------ $tekstitiedosto = fopen($kuvahakemisto . $_FILES['kuvatiedosto']['name'] . ".txt", "w+"); // avataan tiedosto jonka nimi on: lähetetyn kuvan nimi + .txt pääte // parametri w+ luo myös tarvittaessa uuden tiedoston fwrite($tekstitiedosto, $HTTP_POST_VARS['kuvateksti']); // kirjoitetaan kuvateksti tiedostoon fclose($tekstitiedosto); // suljetaan tiedosto // --------------- lisätty koodi loppuu ----------- } else { die("Ei voitu kopioda tiedostoa, koska sitä ei lähetetty"); } ?> Tiedoston vastaanotto