Todo este proceso es local osea q no tengo mi página en ningun servidor.
salu2
![apachar ojo](http://static.forosdelweb.com/fdwtheme/images/smilies/wink.png)
| |||
Almacenar archivo (lado cliente) Estoy trabajando con un upload de archivos y su descarga (PHP y mysql) y mi problema es q cuando eligo el archivo a descargar no me muestra esa ventanita de descarga de archivos que me pregunta si deseo abrir el archivo o guardarlo. Lo q sucede es q abre la imagen en una nueva ventana y no se supone q sea así, sino q me muestre esa ventanita para elegir la ruta donde deseo almacenarla jeje. Todo este proceso es local osea q no tengo mi página en ningun servidor. salu2 ![]() |
| |||
Que extension de archivo manejas?? Yo utilizo esta para descargar archivos txt y me funciona muy bien... Código PHP: ![]() |
| |||
mmmm.... sabes??, para empezar aun no c utilizar muy bien las cabeceras HTTP, de hecho... no las utilizo. Lo único q manejo son mis links con la dirección del archivo y ya ![]() Código HTML: <a href="<?=$servidor.'/'.$nombre?>">DESCARGAR</a></center></td> Me recomendaron utilizar las cabeceras HTTP pero no c como, si me pudieras ayudar con esto te lo agradeceria.... Salu2 ![]() |
| |||
Podrías usar algo así para forzar al browser Código PHP:
__________________ Dios dira que esto no es justo, pero lo sera... |
| |||
![]() Pues he tratado de implementar el código sugerido en mi aplicación pero.. no me sale. Lo q hago es esto: Código PHP: Código HTML: <!--pagdescarga.html--> <?php $enlace = $servidor.'/'.$nombre; //$nombre es el campo en la B.D header ("Content-Disposition: attachment; filename=".$nombre."nn"); header ("Content-Type: application/octet-stream"); readfile($enlace); ?>.................... <a href="<?=$servidor.'/'.$nombre?>">DESCARGAR</a> OK.. lo q hago es ésto: En "archivos.php" genero mi consulta a la B.D para jalar todos los datos de mis archivos. Estos datos se muestran en "pagdescarga.html" (todos mis archivos, imagenes..etc) pero así como les muestro mi código de ésta me genera muchos errores. El código de los encabezados está mal, no c como deberia de ser y pues con esto mi enlace es erroneo (más no me causa problemas pero así como esta me sigue mostrando la imagen en otra página), so..Cómo deberia de ser mi link?? (mi link no me genera los errores, sino el código d los encabezados) ja !.. espero haberme explicado. Última edición por Ultra Violeta; 18/05/2005 a las 19:41 |
| |||
Código PHP: Cara a un "navegador" .. el contenido que se le envia a este .. vía esas "cabeceras HTTP" se le indica de que tipo es para que -en consecuencia- lo interprete; si tu generas una página HTML por defecto le estás diciendo a tu navegador "oye .. te envio HTML para que lo interpretes" .. si envias una imagen .. lo mismo (y si lo quieres "mezclar" entre el "HTML" .. en algún punto usas un tag de imagen: <img src="...."> .. y por ahí se le ha de indicar "esto son datos de tipo tal .. (formato MIME)). Cuando tu quieres "forzar" un archivo para descargar .. para que se te "abra" esa ventanita típica para descargar el archivo .. lo que haces es "componer" las cabeceras HTTP adecuadas para tal fin. Estas son las que ahí usas (en el ejemplo que te destaco) .. Para este efecto, todo "HTML" está de más .. no puedes usarlo, empezando por "comentarios" .. ni un "link" para descargar en ese mismo script .. en tal caso deberías usar un script/página HTML común con un link que apunte a tu script.php de descargas donde tal vez le pases el parámetro de que archivo se descargará (una referencia de un "ID" de alguna BD donde obtienes el nombre del archivo .. etc o directo el archivo en sí por su nombre). De lo dicho .. en tu script que obtengas los nombres de los archivos a descargar (o identificadores que corresponda) debes generar "HTML" con un link que apunte a tu Script de descarga que NO contiene nada de HTML .. sólo esas cabeceras HTTP: Un link tipo: Código PHP: descargar.php?id=1 .. y en "descargar.php" hagas una consulta SQL a tu BD para obtener el campo de tu BD del registro "id=...." para obtener el nombre del archivo a descargar .. Así en ningún momento "desvelas" donde está el archivo, ni su nombre ni otros detalles del mismo. Un saludo, |
| |||
hasta ahora entendido pero... Grax por la explikdota, t entendí todo perfectamente. Respecto a las cabeceras si habia seguido tu recomendación y lei la documentación de estas pero no comprendí bien sobre como implementarla más si cual era su función, grax x eso también. Como t mostre arriba tengo mi página de descargas "pagdescarga.html" donde tengo todos mis links para realizar la descarga, pero... cómo le indico al script "descarga.php" (donde tengo mis cabeceras) q el link q seleccionarón corresponde al registro tal con clave tal?????...ésto para realizar mi consulta a la b.d y recoja los datos correspondientes al archivo linkeado. cómo paso esos parámetros?? Código HTML: <!--pagdescarga.html--> ..<?=$fecha?>...<?=$nombre?>....<?=$tamaño?>... <a href="descargar.php?nombre=<? echo $nombre ?>">descargar <? echo $nombre ?> <!--desde aquí pasar el parámetro para generar la consulta--> Código PHP: ![]() Última edición por Ultra Violeta; 19/05/2005 a las 18:36 |
| |||
Esa página de descargas ... si obtienes tus datos de una consulta a tu BD .. para comenzar ya no puede ser .html .. debe ser .php (tal vez tu interpretes .html como .php?) El link que debes generar para descargar.php (donde están esas cabeceras) será tipo: descargar.php?id=1 o similar .. Realmente no sé bajo que parámetro identificas el archivo que quieres descargar o lo piensas hacer .. pero se necesita algo: Si tu tienes tu tabla de tu BD: "rutas" y bajo ese "ID" (o que estructura tiene esa tabla?) quieres obtener la "ruta" .. pues deberías hacer una consulta SQL tipo: Código PHP: |
| |||
No, no interpreto .html como .php.. pero no c en si q problemas me podría causar si es html cuando, únicamente lo q hago son mostrar los datos generados de la consulta en "archivos.php", hasta ahorita no me ha causado problemas eso.. pero, osea q con el único hecho de q maneje php en html mi archivo ya debe de ser extension .php??? pero ahi t va como estoy haciendo esto.. tengo 3 archivos: "archivos.php" -> En este hago una consulta a la B.D y muestro todos mis archivos en... "pagdescarga.html" -> Aquí c muestran todos mis archivos, y para su descarga utilizo.... "descarga.php" -> Aquí es donde estan todas mis cabeceras y donde nuevamente hago otra consulta (específica) a la B.D para descargar el archivo correspondiente al link seleccionado en "pagdescarga.html" Ahora lo q no c como funciona es el paso de un parámetro..el "id" de "pagdescarga.html" a "descarga.php" para utilizarlo en la consulta, o sea, si tengo en ... Código PHP: Código PHP: salu2 ![]() |
| |||
oooorale...q rápido, grax grax.. si esa era mi duda, pero sabes??? ahora esto me da un chorro de errores...los errores son estos.... Warning: mysql_result(): supplied argument is not a valid MySQL result resource in F:\Archivos de programa\Apache Group\Apache2\htdocs\upload_php\descarga.php on line 6 (en mi linea 6 tengo esto $nombre=mysql_result($rs,"nombre"); , según el error aqui arribita esta mal ![]() Warning: Cannot modify header information - headers already sent by (output started at F:\Archivos de programa\Apache Group\Apache2\htdocs\upload_php\descarga.php:6) in F:\Archivos de programa\Apache Group\Apache2\htdocs\upload_php\descarga.php on line 8 Warning: Cannot modify header information - headers already sent by (output started at F:\Archivos de programa\Apache Group\Apache2\htdocs\upload_php\descarga.php:6) in F:\Archivos de programa\Apache Group\Apache2\htdocs\upload_php\descarga.php on line 9 Warning: Cannot modify header information - headers already sent by (output started at F:\Archivos de programa\Apache Group\Apache2\htdocs\upload_php\descarga.php:6) in F:\Archivos de programa\Apache Group\Apache2\htdocs\upload_php\descarga.php on line 10 Warning: readfile(F:/Archivos de programa/Apache Group/Apache2/htdocs/upload_php/): failed to open stream: Permission denied in F:\Archivos de programa\Apache Group\Apache2\htdocs\upload_php\descarga.php on line 11 Última edición por Ultra Violeta; 20/05/2005 a las 12:33 |
| |||
si.. lo tengo todo, es lo peor del caso jeje ésto es lo que tengo... Código PHP: salu2 ![]() |
| ||||
Se me ocurre que puedes hacer esto: Cita: Mira, lo que yo hago en ese tipo de situaciones es comprobar si la sintáxis de la consulta está correcta, para eso, hago lo siguiente:
Iniciado por Ultra Violeta ésto es lo que tengo... Código PHP: salu2 ![]() Código PHP: |
| |||
jeje me acabo de dar cuenta de algoo..... Que no necesito realizar ninguna colsulta. X q con solamente utilizar $_GET['nombre'] se a q archivo me estoy refiriendo pero ahora tengo otro problema.....Hago ésto: Código PHP: <br /> <b>Warning</b>: filesize(): Stat failed for F:/Archivos de programa/Apache Group/Apache2/htdocs/pagina web/MANUALES ADMINISTRATIVOS.doc (errno=2 - No such file or directory) in <b>F:\Archivos de programa\Apache Group\Apache2\htdocs\pagina web\up_descarga.php</b> on line <b>12</b><br /> <br /> <b>Warning</b>: Cannot modify header information - headers already sent by (output started at F:\Archivos de programa\Apache Group\Apache2\htdocs\pagina web\up_descarga.php:12) in <b>F:\Archivos de programa\Apache Group\Apache2\htdocs\pagina web\up_descarga.php</b> on line <b>12</b><br /> <br /> <b>Warning</b>: readfile(F:/Archivos de programa/Apache Group/Apache2/htdocs/pagina web/MANUALES ADMINISTRATIVOS.doc): failed to open stream: No such file or directory in <b>F:\Archivos de programa\Apache Group\Apache2\htdocs\pagina web\up_descarga.php</b> on line <b>13</b><br /> X q me da estos errores??? Hay q aclarar algo.. --En esta direccion guardo mis archivos a descargar: F:\Archivos de programa\Apache Group\Apache2\htdocs\pagina web\archivos_upload\archivo.doc --Y en esta esta mi script: F:\Archivos de programa\Apache Group\Apache2\htdocs\pagina web\script.php Salu2 ![]() |
| |||
Cita: Si vas a usar $_SERVER['SCRIPT_FILENAME'], el script debe estar en la misma carpeta q los archivos a descargar. Si le haces un echo a la $variable q contiene el SCRIPT_FILENAME, de dara como rtado "F:\Archivos de programa\Apache Group\Apache2\htdocs\pagina web\script.php" y desde ahí intenta descargar tus archivos, algo q no encuentra. mueve el script a la carpeta donde tienes lo archivos a descargar y modifica el link con el q llamas al script (<a href...>)--En esta direccion guardo mis archivos a descargar: F:\Archivos de programa\Apache Group\Apache2\htdocs\pagina web\archivos_upload\archivo.doc --Y en esta esta mi script: F:\Archivos de programa\Apache Group\Apache2\htdocs\pagina web\script.php Saludos Cuidate P.D.: No se si el código tiene otro error, solo leí al golpe de vista eso y te lo digo, cualquiera seguí posteando.
__________________ Dios dira que esto no es justo, pero lo sera... |
| |||
por fin!!!! Pues ahora si ya funciona, ya tengo mi descarga de archivos. Y si, mi problema era q tenia en una carpeta mis archivos y en otra mi script de descarga. Gracias... Aqui les muestro como quedo finalmente: Código PHP: Código PHP: Salu2 ![]() |