Código PHP:
<?php
// Sacamos la extensión
$extension = explode(".",$_FILES['archivo']['name']);
$num = count($extension)-1;
// Comprobamos que valga
if (in_array(strtolower($extension[$num]),$validas)){
if (!$_FILES['archivo']['size']) {
echo '<p align="center"><font color="#FF0000"><b>El archivo marcado no existe.</b></font></p>';
} elseif ($_FILES['archivo']['size'] < 1024 * $max_size){
$temp_name = microtime();
if(copy($_FILES['archivo']['tmp_name'], $path . $temp_name)) {
// Si el upload va bien, insertamos el registro en la base de datos
query("INSERT INTO subs_lista (pelicula,extension,tipo,fps,cds,autor,comentario,descargas,estemes,time,ip) VALUES ('".trim($_POST['peli'])."' , '".$extension[$num]."' , ".$_POST['tipo']." , ".$_POST['fps']." , ".$_POST['cds']." , ".$user['id']." , '".$_POST['comentarios']."' , 0 , 0 , ".time()." , '".$_SERVER['REMOTE_ADDR']."')");
// Obtenemos el nombre final del fichero
$name = str_pad(mysql_insert_id(),5,"0",STR_PAD_LEFT).".".$extension[$num];
// Renombramos
rename($path . $temp_name, $path . $name);
echo '<p align="center"><font color="#FF0000"><b>Archivo subido con éxito.</b></font></p>';
}
} else {
echo '<p align="center"><font color="#FF0000"><b>El archivo supera los ' . $max_size . ' KB.</b></font></p>';
}
} else {
echo '<p align="center"><font color="#FF0000"><b>El formato no es válido, sólo archivos ZIP y RAR.</b></font></p>';
}
?>
Eso va dentro de un include en otro fichero... La variable $max_size vale 150 para limitar el tamaño a 150 KB. $path es la ruta absoluta del archivo (/home/usuario/public_html/carpeta/)