Jamás deberías usar \ para las rutas si usas Windows, porque ese precisamente es el problema, la barra de escape \ es especial y arruina tu ruta inicial.
Código PHP:
Ver original// MAL
$dir_subida = 'C:\Archivos de programa\EasyPHP-DevServer-14.1VC9\data\localweb\subidas\S';
// BIEN
$dir_subida = 'C:\\Archivos de programa\\EasyPHP-DevServer-14.1VC9\\data\\localweb\\subidas\\S';
// MEJOR
$dir_subida = 'C:/Archivos de programa/EasyPHP-DevServer-14.1VC9/data/localweb/subidas/S';
Si vas a usar \ como separador de directorios debes escapar la barra \\ para evitar que rompa la cadena, o mejor aún, usar la barra / pues PHP entiende perfectamente la ruta y la corregirá para ser usada en Windows.
Otro error grave que cometes es que guardas la ruta física completa del archivo: tremendo error.
¿Por qué es un error?
Porque para poder descargarse un archivo debe ser accedido a través del servidor web, usando una ruta a partir de la raíz del sitio, no una ruta física porque es imposible descargarla.
Lo único que debes guardar es la ruta relativa desde la raíz del sitio hacia el archivo, de otra forma siempre obtendrás enlaces rotos e inútiles.
O mejor aún, sólo guardas el nombre del archivo y porque si ya sabes que la ruta es la misma ¿para qué guardar información de más?