El siguiente codigo consigue subir un archivo de cualquier tipo al servidor, ademas de poder modificar el nombre del archivo.
Código PHP:
<form action="" method="post" enctype="multipart/form-data">
<input name="mi_archivo" type="file" />
<input name="" type="submit" value="Subir archivo" />
<input name="accion" type="hidden" value="subir" />
</form>
<?
if(isset($_POST['accion'])){
echo SUBIR('archivo','/carpeta/');
}?>
<?
function SUBIR($nuevo_nombre,$nueva_ruta){
if(@$_FILES['mi_archivo']!==''){
$ruta_total = $_SERVER['DOCUMENT_ROOT'].$nueva_ruta;
$BASENAMES = basename( $_FILES['mi_archivo']['name']);
$nuevo_nombre_completo = $nuevo_nombre.'.'.detecta_extension($BASENAMES);
$ruta_total = $ruta_total . $nuevo_nombre_completo;
if(@move_uploaded_file($_FILES['mi_archivo']['tmp_name'], $ruta_total)) {
return "El archivo ha subido al servidor correctamente: ".$nueva_ruta . $nuevo_nombre_completo ;
} else{
return 'Ha ocurrido un error al subir el archivo';
}
}
}
function detecta_extension($mi_extension){
return end(explode(".", $mi_extension));
}
?>