bueno el codigo que yo tengo lo uso como un webftp pero es totalmente configurable para subir la extencion que tu quieras mira aqui te pondo el codigo
<?php
$RENAME = "fichero_".$_FILES['archivo']['name'];//Renombramos el archivo con el prefijo fichero_
if (file_exists("archivos_tavo/$RENAME")) {//Comprobamos si existe un fichero con el mismo nombre, en caso de que exista, lo informamos con el siguiente mensaje.
echo "<font color=\"#990000\">Por favor renombra tu fichero <b>".$_FILES['archivo']['name']."</b> por que ya existe uno con ese nombre.</font>";
}
//Si no existe uno asi...
else{
//Conectamos con nuestra base de datos.
include("conexion.php");
//Definimos las carpeta donde sera subido este fichero, debemos otorgar permisos al servidor poner chmode 0777 a la carpeta upload
$path_upload = 'archivos_tavo/';
//La funcion de php explode, guardamos en un array el nombre del archivo segun el primer parametro.
$extension = explode(".",$_FILES['archivo']['name']);
//Guardamos el array en una sola variable $num
$num = count($extension)-1;
if($extension[$num] == "htm" || $extension[$num] == "html" || $extension[$num] == "php" || $extension[$num] == "zip" || $extension[$num] == "gz" || $extension[$num] == "exe" || $extension[$num] == "css" || $extension[$num] == "gif" || $extension[$num] == "swf" || $extension[$num] == "jpg" || $extension[$num] == "bmp" || $extension[$num] == "jpeg"){//Permitimos subir solo zips y gz
if($_FILES['archivo']['size'] < 100000){//Definimos el peso en Kb que tendran los fichero a subir.
if (move_uploaded_file($_FILES['archivo']['tmp_name'], $path_upload . $RENAME)){//Vas pa' dentro
//Insertamos estos datos en nuestra base de datos
mysql_query("INSERT INTO zips (zip, zip_descripcion) VALUES ('$RENAME', '$_POST[zip_descripcion]')", $conexion);
echo "<font color=\"#0000ff\">El fichero <b>".$_FILES['archivo']['name']."</b> fue subido con éxito.
<br>Gracias por tu Aportación. El sistema lo ha renombrado a <b>$RENAME</b><br></a></font>";
}
else
{
echo "<font color=\"#990000\">Hubo un error al tratar de subir este Fichero</font>";//Sabe que paso...
}
}
else
{
echo "<font color=\"#990000\">El fichero <b>".$_FILES['archivo']['name']."</b> supera los <b>10Mg</b>, por lo tanto no se ha podido subir.</font>";
}
}
else
{
echo "<font color=\"#990000\">El formato del fichero no es valido,<br>
solo se aceptan estas extenciones: <b>.zip</b>, <b>.gz</b>, <b>htm</b>, <b>html</b>, <b>php</b><br>
,<b>swf</b>, <b>gif</b>, <b>jpg</b>, <b>jpeg</font>";
}
mysql_close($conexion);
}//Al fin.. uff!!
?>
<a href="ver_ficheros.php" style="text-decoration:none">VER FICHEROS</a>
Solo tu cambia tus extenciones y tu configuracion de tu base de datos