Codice:
// Use random file names? true=yes (recommended), false=use original file name. Random names will help prevent overwritting of existing files!
$random_name=true;
// Please keep the array structure.
$allow_types=array("jpg","gif","png","zip","rar","txt","doc");
// Path to files folder. If this fails use $fullpath below. With trailing slash
$folder="./uploads/";
// Full url to where files are stored. With Trailing Slash
$full_url="http://www.junioranonimmail.altervista.org/upload/uploads/";
// Only use this variable if you wish to use full server paths. Otherwise leave this empty! With trailing slash
$fullpath="";
// MD5 the password.. why not?
$password_md5=md5($password);
// If you set a password this is how they get verified!
If($password) {
If($_POST['verify_password']==true) {
If(md5($_POST['check_password'])==$password_md5) {
setcookie("phUploader",$password_md5,time()+86400);
sleep(1); //seems to help some people.
header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']);
exit;
}
}
}
// The password form, if you set a password and the user has not entered it this will show.
$password_form="";
If($password) {
If($_COOKIE['phUploader']!=$password_md5) {
$password_form="<form method=\"POST\" action=\"".$_SERVER['PHP_SELF']."\">\n";
$password_form.="<table align=\"center\" class=\"table\">\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"100%\" class=\"table_header\" colspan=\"2\">Password Required</td>\n";
$password_form.="</tr>\n";
$password_form.="<tr>\n";
$password_form.="<td width=\"35%\" class=\"table_body\">Enter Password:</td>\n";
$password_form.="<td width=\"65%\" class=\"table_body\"><input type=\"password\" name=\"check_password\" /></td>\n";
$password_form.="</tr>\n";
$password_form.="<td colspan=\"2\" align=\"center\" class=\"table_body\">\n";
$password_form.="<input type=\"hidden\" name=\"verify_password\" value=\"true\">\n";
$password_form.="<input type=\"submit\" value=\" Verify Password \" />\n";
$password_form.="</td>\n";
$password_form.="</tr>\n";
$password_form.="</table>\n";
$password_form.="</form>\n";
}
}
// Function to get the extension a file.
function get_ext($key) {
$key=strtolower(substr(strrchr($key, "."), 1));
// Cause there the same right?
$key=str_replace("jpeg","jpg",$key);
return $key;
}
$ext_count=count($allow_types);
$i=0;
foreach($allow_types AS $extension) {
//Gets rid of the last comma for display purpose..
If($i <= $ext_count-2) {
$types .="*.".$extension.", ";
} Else {
$types .="*.".$extension;
}
$i++;
}
unset($i,$ext_count); // why not
$error="";
$display_message="";
$uploaded==false;
// Dont allow post if $password_form has been populated
If($_POST['submit']==true AND !$password_form) {
For($i=0; $i <= $file_uploads-1; $i++) {
If($_FILES['file']['name'][$i]) {
$ext=get_ext($_FILES['file']['name'][$i]);
$size=$_FILES['file']['size'][$i];
$max_bytes=$max_file_size*1024;
// For random names
If($random_name){
$file_name[$i]=time()+rand(0,100000).".".$ext;
} Else {
$file_name[$i]=$_FILES['file']['name'][$i];
}
//Check if the file type uploaded is a valid file type.
If(!in_array($ext, $allow_types)) {
$error.= "L'estensione del file caricato non è valida. I formati supportati sono: ".$types.".<br />Il tuo file<b>non</b> è stato caricato.<br />";
//Check the size of each file
} Elseif($size > $max_bytes) {
$error.= "Il file <b>non</b> è stato caricato perchè è troppo grande. <br> Peso massimo: ".$max_file_size."kb.<br />";
// Check if the file already exists on the server..
} Elseif(file_exists($folder.$file_name[$i])) {
$error.= "Il file: ".$_FILES['file']['name'][$i]." esiste già nel server, rinominalo e riprova.<br />Il tuo file <b>non</b> è stato caricato.<br />";
}
} // If Files
} // For
//Tally the size of all the files uploaded, check if it's over the ammount.
$total_size=array_sum($_FILES['file']['size']);
$max_combined_bytes=$max_combined_size*1024;
If($total_size > $max_combined_bytes) {
$error.="";
}
// If there was an error take notes here!
If($error) {
$display_message=$error;
} Else {
// No errors so lets do some uploading!
For($i=0; $i <= $file_uploads-1; $i++) {
If($_FILES['file']['name'][$i]) {
If(@move_uploaded_file($_FILES['file']['tmp_name'][$i],$folder.$file_name[$i])) {
$uploaded=true;
} Else {
$display_message.="Couldn't copy ".$file_name[$i]." to server, please make sure ".$folder." is chmod 777 and the path is correct.\n";
}
}
} //For
} // Else
} // $_POST AND !$password_form
/*
//================================================================================
* Start the form layout
//================================================================================
:- Please know what your doing before editing below. Sorry for the stop and start php.. people requested that I use only html for the form..
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title><?php echo $websitename; ?></title>
<style type="text/css">
body{
background-color:#FFFFFF;
font-family: Verdana, Arial, sans-serif;
font-size: 12pt;
color: #000000;
}
.error_message{
font-family: Verdana, Arial, sans-serif;
font-size: 11pt;
color: #FF0000;
}
.uploaded_message{
font-family: Verdana, Arial, sans-serif;
font-size: 11pt;
color: #000000;
}
a:link{
text-decoration:none;
color: #000000;
}
a:visited{
text-decoration:none;
color: #000000;
}
a:hover{
text-decoration:none;
color: #000000;
}
.table {
border-collapse:collapse;
border:1px solid #000000;
width:450px;
}
.table_header{
border:1px solid #070707;
background-color:#C03738;
font-family: Verdana, Arial, sans-serif;
font-size: 11pt;
font-weight:bold;
color: #FFFFFF;
text-align:center;
padding:2px;
}
.upload_info{
border:1px solid #070707;
background-color:#EBEBEB;
font-family: Verdana, Arial, sans-serif;
font-size: 8pt;
color: #000000;
padding:4px;
}
.table_body{
border:1px solid #070707;
background-color:#EBEBEB;
font-family: Verdana, Arial, sans-serif;
font-size: 10pt;
color: #000000;
padding:2px;
}
.table_footer{
border:1px solid #070707;
background-color:#C03738;
text-align:center;
padding:2px;
}
input,select,textarea {
font-family: Verdana, Arial, sans-serif;
font-size: 10pt;
color: #000000;
background-color:#AFAEAE;
border:1px solid #000000;
}
.copyright {
border:0px;
font-family: Verdana, Arial, sans-serif;
font-size: 9pt;
color: #000000;
text-align:right;
}
form{
padding:0px;
margin:0px;
}
</style>
<?
If($password_form) {
Echo $password_form;
} Elseif($uploaded==true) {?>
<table align="center"class="table">
<tr>
<td class="table_header" colspan="2"><b>File caricato(i) con successo!</b> </td>
</tr>
<tr>
<td class="table_body">
<br />
<?
For($i=0; $i <= $file_uploads-1; $i++) {
If($_FILES['file']['name'][$i]) {
$file=$i+1;
Echo("<b>(Link diretto) ".$file.":</b> <a href=\"".$full_url.$file_name[$i]."\" target=\"_blank\">".$full_url.$file_name[$i]."</a><br /><br />\n");
}
}
?>
<br />
<a href="<?=$_SERVER['PHP_SELF'];?>">Torna indietro</a>
<br />
</td>
</tr>
</table>
<?} Else {?>
<?If($display_message){?>
<div align="center" class="error_message"><?=$display_message;?></div>
<br />
<?}?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data" name="phuploader">
<table align="center"class="table">
<tr>
<td class="table_header" colspan="2"><b><?=$websitename;?></b> </td>
</tr>
<tr>
<td colspan="2" class="upload_info">
<b>Formati supportati:</b> <?=$types?><br />
<b>Peso massimo:</b> <?=$max_file_size?>kb.<br />
<b>Peso massimo combinato:</b> <?=$max_combined_size?>kb.<br />
<b>Utilizzo:</b> <font color="#FF0000">NON CARICARE FILE SUPERIORI AI 2MB!</font> Clicca su "Sfoglia" e scegli un file, accertandoti che abbia una delle estensioni elencate in alto, una volta scelto il file clicca su "Invia al server". Attendi il caricamento (Potrebbe impiegarci alcuni minuti se il file è di grandi dimensioni).<br />
<b>Versione:</b> 2.0<br />
</td>
</tr>
<?For($i=0;$i <= $file_uploads-1;$i++) {?>
<tr>
<td class="table_body" width="20%"><b>Seleziona file:</b> </td>
<td class="table_body" width="80%"><input type="file" name="file[]" size="30" /></td>
</tr>
<?}?>
<tr>
<td colspan="2" align="center" class="table_footer">
<input type="hidden" name="submit" value="true" />
<input type="submit" value=" Invia al server " />
<input type="reset" name="reset" value=" Reset " />
</td>
</tr>
</table>
</form>