Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Upload & Protections

(nimetön) [22.06.2005 20:33:35]

#

Lataa kuvan palvelimellesi.

Suojat:
* Vain tuetut muodot ladataan.
* Vain alle 100kt kokoiset tiedostot ladataan.
* Jos kuva samanniminen tiedosto löytyy jo, sitä ei lisätä.
* Jos tiedostojen (upload-kansiossa) maksimi määrä on jo saavutettu, ei lisätä enää kuvia.

Testata voi: http://koti.mbnet.fi/simo-/upload.php

<?php if(!$_GET['act']) { // lomake: ?>
<form action="upload.php?act=upload" enctype="multipart/form-data" method="post">
<b>Kuva:</b> <input type="file" name="browse"><br>
<input type="submit" value="Upload"></form>
<br />
Ratkaisevia syitä kuvan uploadimisen epäonnistumiseen:<br />
<LI>Tuetut tiedosto tyypit: <u>.jpg</u>, <u>.jpeg</u>, <u>.gif</u>, <u>.png</u>
<LI>Maximi tiedosto koko on:  <u>100kt</u>
<br /><br />
Uploadaus ohjeita:<br />
<OL>
<LI>Klikkaa 'Selaa' ja valitse kuva tiedosto.
<LI>Klikkaa "Upload".
</OL>
<br />
Selaa kuvia: <a href="upload/">upload/</a><br />
<?php } ?>

<?php
///////////////////////////////////////////////////////////////////////////////////////////////////
// ASENNUS:                                                                                               //
// 1. Luo upload/ -kansio ja anna 777 oikeudet!        //
/////////////////////////////////////////////////////////////////////////////////////////////////
if($_GET["act"] == "upload") {
$FileName = $_FILES['browse']['name'];
$TemName = $_FILES['browse']['tmp_name'];
$FileSize = $_FILES['browse']['size'];
$MaxSize = 100; // (kt)
$MaxFileCount = 20;

// tarkistetaan tyyppiä:
$supported = array('jpg' , 'jpeg' , 'gif' , 'png'); // kiitos: cAHVA ->
$FileType = substr(strrchr($FileName, "."), 1); // kiitos: T.M.

if(!in_array(strtolower($FileType), $supported)) {
   exit("Upload epäonnistui!<br />\n<i><b>Syy:</b> Tuetut tiedosto muodot ovat: .".implode(' | .',$supported)."</i><br />\n");
} // <-

// tarkitetaan koko:
if($FileSize < $MaxSize) {
        exit("Upload epäonnistui!<br />\n<i><b>Syy:</b> Maximi tiedoston koko on:  100kt</i><br />\n");
}

// uploadataan tiedosto:
$uploaddir = "upload/";
$uploadfile = $uploaddir.$FileName;

// tarkistetaan löytyykö tiedosto jo:
if(file_exists($uploadfile)) {
        exit("Upload epäonnistui!<br />\n<i><b>Syy:</b> Tiedosto on jo olemassa.</i><br />\n");
}

// onko uploadattujen tiedostojen maximi määrä jo saavutettu?
if(count(glob("$uploaddir*")) > $MaxFileCount) {
        exit("Upload epäonnistui!<br />\n<i><b>Syy:</b> Maximi määrä uploadatuissa tiedostoissa on saavutettu..<br />\n");
}

if(move_uploaded_file($TemName,$uploadfile)) {
           echo "Upload onnistui!<br />\n<i>Kato kaikki uploadatut kuvat: <a href=\"upload/\">upload/</a><br />\n";
}else { exit("Upload epäonnistui tuntemattomasta syystä!"); }
}
?>

Vastaus

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

Tietoa sivustosta