Si el archivo está accesible en algún lugar, como han dicho otros, normalmente puede proporcionarle un enlace regular.
Si desea evitar de manera confiable que se abra dentro del navegador (el atributo HTML5 es una buena mejora, pero no es compatible con todos los principales navegadores), debe escribir una rutina de controlador para ofrecerlo al usuario. Se vinculará, digamos, “download.php? File = myfile.txt”, y luego escribirá un script apropiado en download.php. Ese script debe especificar que el archivo se debe descargar, configurando el encabezado HTTP apropiado:
header (“Content-Disposition: adjunto; filename = \” $ filename \ “”);
- ¿Go y Node.js mataron a Ruby on Rails?
- ¿Cómo funciona una pasarela de pago?
- ¿Cuál es la diferencia entre sitios web optimizados para dispositivos móviles y sitios web receptivos?
- ¿Cuáles son algunos atributos, etiquetas y códigos para crear páginas web increíbles en HTML para ganar una competencia?
- ¿Qué tan fácil es mantener una gran base de código React.js?
Luego puede simplemente usar readfile para enviarlo al usuario:
readfile ($ nombre de archivo);
salida;
Es MUY importante que no permita simplemente que este script descargue cualquier archivo dado; de lo contrario, le está dando a cualquier usuario la posibilidad de descargar cualquier archivo aleatorio que desee de su sistema. Debes desinfectar cuidadosamente el nombre de archivo (no solo pases una variable $ _GET sin asegurarte de que solo pueda acceder al directorio al que te refieres), o para estar aún más seguro, haz algo como permitir que el script acceda a una lista particular de archivos almacenados en una tabla de base de datos.
En ese caso, vinculará a su archivo como “download.php? Fileid = 26” o algo así, y luego buscará el nombre de archivo real para el archivo 26 de una tabla en su base de datos SQL.