Hola de nuevo
A priori no puedes saber la conexión del visitante a menos que él te lo diga, pero p. ej. una cosa que se puede hacer es poner una lista con varias conexiones. Ejemplo:
Modem 56K: 10 minutos
Modem 128K: 5 minutos
DSL 256K: 2 minutos
DSL 512K: 1 minuto
+512K: menos de 1 minuto
Luego te calculas el tiempo según lo que ocupe el archivo, p. ej.:
- El archivo ocupa 10Mb
- La conexión la suponemos de 56K
- Divides entre 8 la conexión para pasar de Kbit a KB: 56/8 = 7
- En teoría bajaría a 7 KB/s, pero siempre es menos. Puredes multiplicar por el factor 0.85 que lo aproxima bastante (generalmente está entre 0.80 y 0.90, coges la media y ya está)
- Por tanto 7 x 0.85 = 5.95 KB/s (aproximado)
- Luego calculas el tamaño en KB de tu archivo: 10 Mb = 10240 Kb (1 Mb = 1024 KB)
- Finalmente: 10240 / 5.95 = 1721 segundos = 29 minutos
Eso deberías hacer con cada conexión y con cada archivo. Otra opción sería pedir al usuario que elija su conexión en una lista y luego con javascript podrías calcular el tiempo de descarga.
Saludos