Como han dicho otros, no use FTP, hay muchas, muchas cosas mal con él. OTOH, probablemente debería usar un protocolo que no requiera que los usuarios instalen software adicional del lado del cliente; aunque el acceso basado en ssh (sftp, scp) sería ideal, las máquinas con MSWindows no vienen con un cliente como estándar.
No hay fin de los administradores de archivos disponibles escritos en PHP (y probablemente también en otros idiomas). IIS hace cosas muy extrañas con la tunelización de los permisos NTLM, pero si está usando Apache, debería ser razonablemente seguro; sin embargo, acceder a las unidades no es tan simple como simplemente leer desde \ server \ username \: necesitaría permitir el derechos de administrador del servidor web en estos archivos, ¡pero eso es una pesadilla de seguridad!
La forma en que lo hago (para un tipo de aplicación muy diferente) es manejar la E / S a través de smbclient usando el nombre de usuario / contraseña de la sesión PHP de los usuarios, pero eso es en una máquina Linux, AFAIK, no hay equivalente en MSWindows.
Ciertamente, desearía utilizar las credenciales proporcionadas por el usuario para autenticarse en el almacenamiento.
¡Esto se está volviendo rápidamente complicado!
Por lo tanto, una solución práctica sería permitir a los estudiantes mapear las unidades a través de Internet. De esa manera, no necesita preocuparse por las complicaciones de proporcionar un administrador de archivos que no es una parte integral del sistema operativo (es decir, directamente accesible desde las aplicaciones). Pero no desea exponer su servidor a nadie y a todos. La forma habitual de resolver este problema sería una VPN, y hay muchas disponibles buenas y de bajo costo . O simplemente envuelva el servicio en SSL con autenticación de certificado de cliente. Pero, de nuevo, esto requiere instalaciones del lado del cliente.
Entonces.....
¿Qué tal un formulario web para autenticar a un usuario en una dirección IP que luego crea un agujero de tiempo limitado en el firewall para que esa dirección IP se conecte a través de SMB (y todavía necesitan proporcionar un nombre de usuario / contraseña para mapear el disco, por supuesto) .