Hola, tengo yo un pequeño código que realicé que:
1)Sube archivos a una carpeta.
2)Guarda la ruta en una bd.
3.)Cambia el nombre del archivo.
4)Restringe por extensión/tipo de archivo.
Es cosa de que lo adaptes, y listo:
Código PHP:
$formatos = array ('doc','docx','pdf','xlsx','xls','ppt','pptx','zip','rar');
if (isset($_POST['guardar'])){
$nombreArchivo = $_FILES['flsarchivo']['name'];
$nombreTmpArchivo = $_FILES['flsarchivo']['tmp_name'];
$extension = explode(".", $_FILES['flsarchivo']['name']);
$ext = end($extension);
$destino = "Docs/Upload/RV/$_POST[Nombre].".$ext;
if (in_array($ext, $formatos)){
if (move_uploaded_file ($nombreTmpArchivo, $destino)){
echo "OK";
}else{
echo "Formato no permitido";
}
}else{}
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO archivos_rv (Nombre, Descripcion, Ruta) VALUES ('$_POST[Nombre]', '$_POST[Descripcion]','$destino')");