Ho Risolto, mancava l'enctype nel form...in + ho corretto un piccolo bug nei controlli della classe...se a qualcuno interessasse, vi posto il sorgente completo, e le istruzioni per un facile upload!
pagina: upload.class.inc.php
Codice PHP:
<?php
class Uploader {
var $max_file_size = 0;
var $estensioni_consentite = array();
var $opzioni_upload = array();
function max_size($valore)
{
$this->max_file_size = $valore;
}
function estensioni_ok($array)
{
$this->estensioni_consentite = $array;
}
function opzioni_up($array)
{
$this->opzioni_upload = $array;
}
function upload_file($nome_campo_form, $cartella_upload)
{
$msg = 0; // se 0 estensione non consentita
$overwrite = 1; // se 0 rinomina
$nome_file = $_FILES[$nome_campo_form]['name'];
if($max_file_size != 0)
{
if($_FILES[$nome_campo_form]['size'] > $max_file_size)
{
die("Il File è troppo Grande!");
}
}
foreach($this->opzioni_upload as $key => $value)
{
if($key == 'lock_ext')
{
if($value == 1)
{
$file_split = explode(".",$nome_file);
$estensione = array_pop($file_split);
foreach($this->estensioni_consentite as $valore)
{
if($estensione == $valore)
{
$msg = 1;
}
}
} else {
$msg = 1;
}
}
if($key == 'overwrite')
{
if($value == 1)
{
$overwrite = 1;
} else {
$overwrite = 0;
}
}
}
if($msg == 0)
{
die("Estensione non Consentita!");
}
if(is_uploaded_file($_FILES[$nome_campo_form]['tmp_name']))
{
if($overwrite == 0)
{
if(file_exists($cartella_upload.$nome_file))
{
$casnum = rand(0,9999999999);
$filenome = dividinome($nome_file);
$nome_file = $filenome.'('.$casnum.').'.$estensione;
}
}
if(move_uploaded_file($_FILES[$nome_campo_form]['tmp_name'], $cartella_upload.$nome_file))
{
print("Upload Riuscito!");
} else {
die("Errore nell'Upload del File");
}
} else {
die("Errore nell'Upload del File");
}
}
function dividi_nome($nome)
{
$fsplit = explode('.',$nome);
$vai = count($fsplit);
$i=0;
while($i<$vai - 1)
{
if($i==$vai - 2)
{
$nome.=$fsplit[$i];
} else {
$nome.=$fsplit[$i].'.';
}
$i++;
}
return $nome;
}
}
?>
Pagina di Esempio: esempio.php
Codice PHP:
<?php
// include la classe che io ho messo nella sottocartella libs
include("libs/upload.class.inc.php");
// valorizzo la variabile
$test = new Uploader();
// imposto le opzioni
// lock_ext = 1, permette di scegliere le estensioni consentite;
// overwrite = 1, sovrascrive il file; impostato a 0 rinomina il file uppato.
$test->opzioni_up(array('lock_ext' => 1, 'overwrite' => 1));
// se lock_ext è messo ad 1, con questa funzione si scelgono le estensioni consentite
$test->estensioni_ok(array('zip', 'rar', 'mp3', 'jpg' , 'gif'));
// uppa il file
// al posto di userfile ci va il nome del campo di tipo file del form
// al posto di files/ ci va la cartella dove andranno uppati i files
$test->upload_file('userfile','files/');
?>
questo è il form di upload di esempio: esempio.html
codice:
<html>
<head>
<title>Prova</title>
</head>
<body>
<form enctype="multipart/form-data" action='esempio.php' method='POST'>
<input type='file' name='userfile' />
<input type='submit' value='upload' />
</form>
</body>
</html>
Spero possa servire a qualcuno, lasciate commenti o critiche se volete!