Upload script
28.12.2009 14:18Autor: VireL
Popis: Script pre upload s funkciou povolenia pripon(whitelist)
Uploadne subor s povolenou priponou a velkostou do zvoleneho vytvoreneho priecinka.
Pripony zadavajte bez bodiek.
<?php
###########################
#------Upload script------#
#--------By VireL---------#
#----------For------------#
#-https://www.pcforum.sk/--#
#------Thx for using------#
###########################
//Velkost v B
define("VELKOST", "150528");
//Priecinok kde ukladat subory
$priecinok = "uploads";
//Povolene pripony
$pripony = array("gif", "GIF", "jpg", "JPG", "jpeg", "JPEG", "png", "PNG", "rar", "RAR", "zip", "ZIP");
//Rozdelenie pripon
$b = 0;
foreach($pripony as $pripona)
{
$b++;
if(count($pripony) == $b)
{$allow .= "\.".$pripona;}
else
{$allow .= "\.".$pripona."|";}
}
//Urcenie ID nazvu suboru, podla poctu suborov
$id = 0;
$open = opendir($priecinok);
while ($files = readdir($open))
{
$filename = $files;
if ($filename != "." and $filename != "..")
{
$id++;
}
}
//Formular
echo "<form method='post' action'".$_SERVER['PHP_SELF']."' enctype='multipart/form-data'>";
echo "<input type='file' name='subor'><br>";
echo "<input type='submit' name='upload' value='Upload'></form>";
//Podmienka ci bol odoslany formular, ci subor existuje a ci pripona suhlasi
if(isset($_POST['upload']) and
is_uploaded_file($_FILES["subor"]["tmp_name"]) and
preg_match("/(".$allow.")$/", $_FILES["subor"]["name"]))
{
if($_FILES["subor"]["size"] <= VELKOST)//Kontrola velkosti
{
if(!file_exists($priecinok."/".$id."-".$_FILES["subor"]["name"]))//Ci neexistuje subor s rovnakym menom
{
$meno = $id."-".$_FILES["subor"]["name"];
move_uploaded_file($_FILES["subor"]["tmp_name"], $priecinok."/".$meno);
}
else//Ak ano funkcia rand() zvoli nahodnu hodnotu
{
$meno = $id."-".rand(0, 99999)."-".$id."-".$_FILES["subor"]["name"];
move_uploaded_file($_FILES["subor"]["tmp_name"], $priecinok."/".$meno);
}
echo "<a href='".$priecinok."/".$meno."'>Link na subor</a>";//Link na subor
}
else//Ak je velkost presahujuca
{
echo "Subor je prilis velky :(";
}
}
?>
———
Späť