Mira, he leido todo lo que pusieron en este foro, la pregunta principal creo que es: ¿Porque necesitas el archivo completo en la base de datos ?
Lo más optimo y mejor seria hacerlo asi (ejemplo):
1. Creas tu tabla:
tblArchivos
- ArchivoID ID unico de archivo AUTO_INCREMENT
- ArchivoNombre "archivo.txt"
- ArchivoDirectorio "/archivos/"
- ArchivoTipo "TEXTO"
2. Cuando requieres descargar o mostrar un archivo haces esto:
Si ArchivoTipo = "TEXTO"
$contenidoArchivo = LEER EL ARCHIVO(ArchivoDirectorio . ArchivoNombre)
echo $contenidoArchivo
else
//Haces la liga para que se descargue.
De esa forma, todo lo que han hablado en este tema se cumple..
1. Tu quieres ASEGURAR siempre que los archivos texto no son "DESCARGADOS", sino que son mostrados directamente en pantalla.
2. Como han mencionado, archivos exe, zip, pdf, etc. es mejor que sean descargados, eso es lo normal y mas seguro.
3. La base de datos es 100% eficiente, de hecho aun puede haber modificaciones a las columnas de la tabla para hacerlo mucho mas eficiente, pero es un ejemplo basico que seguramente cubre todo lo que necesitarias.
Bueno, este es solo un comentario, y realmente te lo recomiendo, yo guardo en la base de datos solamente archivos que son necesarios totalmente, por ejemplo, previos de imagenes (3k - 5k), y por ejemplo los archivos tipo TEXTO, no me preocupo, los meto directo en un campo de CARACTERES LARGO y ya, no necesito guardar archivos mas grandes, porque realmente no es recomendable (y)
Espero que te sirva de algo te vas a ahorrar muchos dolores de cabeza con este metodo, y tanto apache, MySql y PHP te lo agradeceran