La descarga de un archivo funciona de la siguiente manera, con algunos detalles omitidos.
- Se selecciona un archivo de la fuente y se inicia una solicitud para descargar el archivo.
- Se abre un archivo local en el cliente para aceptar el contenido del archivo.
- Se implementa un ciclo de aceptar datos del servidor y escribir los datos en el archivo local.
- Una vez que los datos se transfirieron correctamente o se produjeron errores, el archivo local debe cerrarse.
Al abrir el archivo local, se deben tomar algunas decisiones.
- ¿Abre el archivo en el destino final del archivo o lo abre en un área de trabajo?
- Si abre el archivo en la ubicación de destino, puede encontrarse con los siguientes problemas.
- La ubicación de destino es un medio lento como una unidad flash y puede provocar que la descarga se detenga.
- La ubicación de destino es extraíble y puede desaparecer durante la transferencia. Esto causa muchas complicaciones.
- Si abre el archivo en un área de trabajo, debe elegir un área de trabajo con suficiente espacio para el archivo y probablemente desee un nombre de archivo único para que no entre en conflicto con otra descarga.
- Una vez completada la descarga, el contenido del archivo debe copiarse en la ubicación de destino. Si se copió correctamente, elimine el primer archivo local. Si la transferencia se cancela, elimine el archivo local o realice un seguimiento para reanudarlo desde donde lo dejó, si es posible. Reanudar suele ser más problemático de lo que vale y muchas transferencias de archivos no lo admiten de todos modos.
Este tipo de problemas ocurre con frecuencia y existe una solución simple. Abra un archivo temporal ubicado en una ubicación de archivo temporal designada. Si bien el código exacto depende del idioma utilizado, al abrir un archivo temporal se abrirá un archivo con un nombre que aún no existe en una ubicación determinada o en una ubicación predefinida. El archivo temporal también se borrará automáticamente una vez que se cierre.
- ¿Es factible la ingeniería inversa para piezas de chapa?
- Soy un ingeniero eléctrico. ¿Cuáles son los programas de computadora que debo aprender para poder obtener un trabajo decente en la industria del software?
- ¿De quién es la vida más agitada, un oficial de IAS o un ingeniero de software?
- Cómo prepararse para un puesto de ingeniero de pruebas de software
- ¿Qué es la pila de tecnología de Tumblr?
Esto resuelve muchos problemas, pero hace que las cosas sean un poco más difíciles de manejar si desea implementar una capacidad de reanudación de descarga. Por las razones de los idiomas, implemente una función de archivo temporal que genere un nombre de archivo único para usted, pero no lo abra ni lo borre.
Por supuesto, si está implementando un tipo de transferencia de archivos torrent, por naturaleza requiere un archivo local que debe administrarse durante un período de tiempo y el uso de un archivo temporal puede no ser su mejor opción. En esta situación, es mejor que genere un nombre de archivo utilizando un GUID. Este es un número muy grande que es único cada vez que se genera. Esto es mucho más difícil de implementar en muchos idiomas porque no es una función comúnmente implementada.