Te paso un Script que puse
aquí hace algún tiempo como ejemplo para subir varias imagenes.
Código PHP:
<?php
/**
*
* XERIFANDTOMAS
*
* Guarda una o varias imagenes en el servidor
*
* @param array $file ( OBILIGATORIO )
* Debe de pasarse $_FILES habiendo subido los archivos en el form con name="myNombre[]"
*
* @param string $nombre ( OPCIONAL )
* Default: img
* nombre para la imagen,los caracteres extraños seran cambiados por eliminar_simbolos()
* Se añade marca de tiempo+identificador ( dmYHis-key )
* Ejemplo: MyImg-21022016154613-1.jpg
*
* @param string $ruta ( OPCIONAL )
* Default: $_SERVER['DOCUMENT_ROOT']/img/
* Ruta de la imagen final
*
* @param string $max_size ( OPCIONAL )
* Default: 2000000 (5MB)
* Tamaño máximo permitido de la imagen
*
* @param int $max_archivos ( OPCIONAL )
* Default: 5
* Número máximo de archivos que se pueden subir a la vez
*
*
*
* @return ARRAY / String
* En caso de éxito: Devuelve un array con los nombres de las imagenes
* En caso de error: Debuelve un string con el mensaje de error
*/
function upload_img($file,$nombre="img",$ruta="",$max_size= "2000000",$max_archivos=5){
$tipos_de_archivos= array("image/jpeg","image/jpg","image/png");
if ($ruta=="") { $ruta = $_SERVER['DOCUMENT_ROOT']."/img/"; }
if ( !file_exists($ruta) ) {
if( !mkdir($ruta, 0775, true) ){ return false; }
}
$key_files=array_keys($file);
$numero_de_archivos= count($file[$key_files[0]]['name']);
if ($numero_de_archivos<1) {return 'No se ha cargado ningun archivo.';}
if ($numero_de_archivos>$max_archivos) {return 'Solo se pueden subir <b>'.$max_archivos.' archivos</b> a la vez.';}
if ( !is_array($file[$key_files[0]]['tmp_name']) ){return 'Se deben subir los archivos como un array.';}
$tmp_name= $file[$key_files[0]]['tmp_name'];
$type= $file[$key_files[0]]['type'];
$size= $file[$key_files[0]]['size'];
$name= $file[$key_files[0]]['name'];
$error= $file[$key_files[0]]['error'];
foreach ($tmp_name as $k => $v) {
if (!is_uploaded_file($v)) {return '<br/>El archivo <b>'.$name[$k].'</b> ha dado error.';}
}
foreach ($error as $k => $v) {
if ($v!==0) {return '<br/>El archivo <b>'.$name[$k].'</b> ha dado error.';}
}
foreach ($type as $k => $v) {
if (!in_array($v, $tipos_de_archivos)){return '<br/>El archivo <b>'.$name[$k].'</b> no esta permitido. Solo archivos JPG, JPEG, PNG.';}
}
foreach ($size as $k => $v) {
if ($v>$max_size) {return '<br/>El archivo <b>'.$name[$k].'</b> supera el tamaño permitido.';}
}
foreach ($name as $k => $v) {
$extension = end(explode('.', $v));
$nombre_final[$k]=$nombre.'-'.date('dmYHis').'-'.$k.'.'.$extension;
}
foreach ($tmp_name as $k => $v) {
$destino= $ruta.$nombre_final[$k];
if(!move_uploaded_file($v, $destino)){return '<br/>No se ha podido mover el archivo al servidor.';}
$n[]=$nombre_final[$k];
}
return $n;
}
?>
Respecto a
Bien puedes modificarlo en el php.ini de forma global
O si solo es necesario para ese Script establecerlo de forma local con un .htaccess con las siguientes líneas
Cita: php_value post_max_size 10M
php_value upload_max_filesize 10M
Puedes leer un artículo al respecto
aquí