![]() |
Bajar un fichero
Mi primer post en este foro.
Tengo un fichero en el servidor que, mediante un botón quiero bajar a mi disco duro. He estado buscando en la documentación de http://es2.php.net/manual/es/index.php y he encontrado el comando copy($source, $dest). Pero este comando me dice: "Warning: Unable to create 'c:/urls.txt': No such file or directory in /home/virtual/.../php/urls.php on line 41", o sea, que está intentando copiar sobre el propio HD del servidor. A mi me interesa bajarlo a mi disco duro. ¿Alguien sabe cómo se hace? |
Esta parece pregunta de javascript:
<input type='button' value='bájalo' onclick='location.href="tu archivo"'> Ahora que sí insistes en php podría ser: <input type='button' value='bájalo' onclick='bajalo.php'> El archivo bajalo.php contendría: Código PHP:
|
Vaya, Gran Señor de Teotihuacán, probaré esto y comentaré. Esto quiere decir que: ¿nos falta un foro de javascript? ¿o lo dejamos en éste?, ¿o es el de java? Como nunca antes había entrado en esta sección pues no lo sé.
Gracias (sirva como respuesta a los dos temas) |
Hola
Nunca habias entrado en esta seccion ??? .... no se a mi como que me suenas de algo. Otra opcion algo mas currada y que sirve para ocultar la situacion del archivo, seria la siguiente: Código PHP:
|
Hey, esta última me gusta más, ya que no se trata de un fichero de dominio público sino privado, y con el método de román hago público todo el path del fichero.
PD: en caso de ser un fichero a descargar por cualquiera, sí que lo hubiera hecho con un link, tal y como tengo en la sección de descargas. Pero no es eso lo que yo quiero. Gracias kayetano. |
Después de varias pruebas, el método que he tenido que utilizar es el proporcionado por román. Lo único que pasa es que no es exactamente lo que yo quería puesto que ese método lo que te abre es una ventana del navegador con el contenido del fichero, luego tienes que darle al navegador en la opción "guardar como..." y yo lo que pretendía es que se guardara directamente en el disco duro, sin mostrarse el contenido en pantalla.
Se trata de un fichero TXT, que puede llegar a ser muy grande. De momento he empleado este método. La opción de poner un link no me es útil ya que en este caso, como algún buscador apunte a dicho fichero, puedo organizar un cacao en los buscadores impresionante. Además, este fichero está protegido por contraseña, si pongo el link, pierdo la contraseña. Bueno, gracias por la ayuda. Seguiré probando. |
El hecho de que sea un archivo TXT es lo que ocasiona que el navegador lo despliegue en lugar de bajarlo.
Aquí te pongo un truco que parece funconar como deseas. Vamos a suponer que tu archivo se llama "obiwuan.txt". En la página desde donde deseas bajar el archivo pones un enlace (o botón si deseas confirmación) al script "obiwuan.php". En este script pones: Código PHP:
El segundo header establece el nombre del archivo. Si no pones nada el archivo se bajará como "obiwuan.php" y no como "obiwuan.txt" ¡Listo! Cuando el usuario haga click aparecerá directamente la ventana de guardar archivo. Además, lo bueno es que con "include" puedes bajar un archivo que coloques en carpetas fuera del árbol de documentos del servidor de manera que queda más protegido y de hecho puedes forzar el nombre que quieras, no tiene que coincidir con el real. // Saludos |
Esto es lo que he puesto:
Código:
if ($boton=="Descargar") { Netscape: ¡perfecto! IE: descarga sin preguntar nombre, ni siquiera sé dónde lo mete Opera: muestra el contenido del fichero ¡Menuda sorpresa! Así que lo tendré que dejar a sabiendas que sólo funciona correcto con el Netscape. NOTA: El exit es necesario porque el Opera sigue procesando el script, y hay mucho más que eso en la página. Thenk iu, roman |
¿Con qué versión de IE lo probaste? Con la versión 6 funciona. En la página de PHP mencionan algunos problemas con IE en la versión 5. No sé si tenga mucho que ver pero prueba agregar el header:
header("Cache-control: private"); También prueba cambiando el header de "Content-dispositon" a header("Content-Disposition: attachment; filename=este.txt"); y quita el de force-download. // Saludos |
Forma Correcta Descargar Archivo
Estos son los headers que deben de llevar para descargar la actual pagina como un txt.
Código PHP:
Tambien si se tiene algun otro archivo en otra parte que se quiere descargar por medio de ese script, se envian los mismos headers de arriba (poniendo el nombre y la extencion del archivo correctos en vez de .txt) Código PHP:
Esto es muy util cuando se valida el permiso de ciertos usuarios a descargar archivos, asi no se muestra la ruta del archivo, si no que siempre el script es la ruta, por ejemplo download_file.php?id=332 Espero les sirva. http://keflog.com http://keflog.com/sex |
Hola
¿Te has parado a mirar de cuando es ese post? ;) |
No solo me importan los autores
Claro,
Pero este foro se encuentra dentro de los primeros cuando buscas el correcto keyword en google. Entonces, toda esa gente que entra como yo, aun busca la pregunta. No me preocupo por los autores de eso, si no por dejar la informacion correcta alas personas que siguen entrando. Creo que si se la respuesta, y estoy viendo que ahi, lo ultimo que dejaron es algo incorrecto, lo mejor es que lo diga. Espero ayudar a gente que lo necesite. Porcierto, visita mi webpage: http://keflog.com Saludos |
Hola
Con el tema de la fecha quiero dar a entender que es muy posible que durante los últimos 4 años se haya tratado este tema en otros hilos proporcionando nuevas y mejores respuestas, por ponerte un ejemplo: http://www.clubdelphi.com/foros/showthread.php?t=28945 http://www.clubdelphi.com/foros/showthread.php?t=34897 http://www.clubdelphi.com/foros/showthread.php?t=21189 http://www.clubdelphi.com/foros/showthread.php?t=44467 En estos hilos (algo mas actuales) se trató el mismo tema, o parecido, y se propusieron diferentes soluciones, entre ellas la que tu propones en un hilo de 2003. Estoy de acuerdo en que si buscas en google por una palabra clave es muy posible que te aparezca este u otro hilo del clubdelphi (somo los mejores ;)), pero siempre es mejor que hagas uso de la herramienta de búsqueda de clubdelphi en la que posiblemente te aparecerán respuestas más actuales con soluciones más modernas y depuradas. De todas formas se agradece mucho tu colaboración y espero poder verte más a menudo por el foro ayudando y dando soluciones a todos los foristas. |
:)
muchas gracias :)
La verdad no suelo ser muy activo en los foros, solo cuando pregunto.. Pero cuando me encuentro con algo, en donde yo se la respuesta y alguna vez me encontre buscandola.. pues ahi le escribo contundentemente.. sin dudas.. pero bueno, gracias por la invitacion. y que bueno que esten al tanto de los movimientos de su sitio.. por eso son e los mejores :) Saludos |
La franja horaria es GMT +2. Ahora son las 02:26:02. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi