Yo tengo este script de subida de archivos q me ha sido de mucha ayuda espero q te sirva ,
ya que necesitas limitar el tamaño mira en la variable $maxlimit donde se estipula que el valor sea x donde x se da en bits
Código PHP:
$folder = "images/"; // Carpeta a la que queremos subir los archivos
$maxlimit = 50000000000; // Máximo límite de tamaño (en bits)
$allowed_ext = "rar,jpg,bmp,jpeg"; // Extensiones permitidas (usa una coma para separarlas)
$overwrite = "no"; // Permitir sobreescritura? (yes/no)
$match = "";
$filesize = $_FILES['file']['size']; // toma el tamaño del archivo
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$filename = "";
$error="";
for($i=0;$i<12;$i++)
{
$filename .= substr($str,rand(0,62),1);
}
if(!$filename || $filename=="") // mira si no se ha seleccionado ningún archivo
{
$error = "- Ningún archivo selecccionado para subir.<br>";
}
elseif(file_exists($folder.$filename) && $overwrite=="no")// comprueba si el archivo existe ya
{
$error = "- El archivo <b>$filename</b> ya existe<br>";
}
// comprobar tamaño de archivo
if($filesize < 1) // el archivo está vacío
{
$error .= "- Archivo vacío.<br>";
}
/* en esta parte es en donde verificamos q el archivo sea mayor o si quieres menor al especificado*/
elseif($filesize > $maxlimit) // el archivo supera el máximo
{
$error .= "- Este archivo supera el máximo tamaño permitido.<br>";
}
$sep=explode('image/',$_FILES["file"]["type"]);
$tipo=$sep[1];
if($tipo == "gif" || $tipo == "jpeg" || $tipo == "jpg" || $tipo == "bmp")
{
$match = "1"; // Permite el archivo
}
if(!$match)
{
$error .= "- Este tipo de archivo no está permitido: $tipo<br>";
}
if(@$error)
{
print "Se ha producido el siguiente error al subir el archivo:<br> $error"; // Muestra los errores
}
else
{
move_uploaded_file($_FILES['file']['tmp_name'], $folder.$filename.'.'.$tipo);
}
espero q te haya servido de algo, a recuerda q este script cambia el nombre del archivo de forma aleatoria.