Foros del Web » Programando para Internet » PHP »

Abrir fichero local

Estas en el tema de Abrir fichero local en el foro de PHP en Foros del Web. Estoy desarrollando una aplicación web php cuyo uso va ser en un ámbito local. Todos los clientes están conectados a una unidad de red Z:\ ...
  #1 (permalink)  
Antiguo 25/06/2009, 04:08
 
Fecha de Ingreso: marzo-2006
Mensajes: 15
Antigüedad: 18 años, 1 mes
Puntos: 0
Abrir fichero local

Estoy desarrollando una aplicación web php cuyo uso va ser en un ámbito local. Todos los clientes están conectados a una unidad de red Z:\

Aunque ya se como listar los directorios y archivos con readdir, me gustaría poder crear enlaces a sus archivos, para poder abrirlos desde el navegador, del mismo modo que si fuesen archivos en el servidor, pero no hay manera. Los enlaces quedan así: <a href="file:///Z:/carpeta/archivo.pdf">archivo.pdf</a>
El problema que al pinchar sobre ellos no pasa nada. Copio el enlace file:///Z:/carpeta/archivo.pdf en la barra de direcciones del navegador y se abre perfectamente.

Esperando vuestra ayuda,
saludos y gracias por adelantado.
  #2 (permalink)  
Antiguo 25/06/2009, 04:35
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Abrir fichero local

mmmm no se pero podrias forzar su descarga con php, prueba y me cuentas...

generas un archivo llamado descarga.php
Código php:
Ver original
  1. <?php
  2. $ruta = "$_GET[ruta]";
  3. $nombre="$_GET[archivo]";
  4. header ("Content-Disposition: attachment; filename=$nombre");
  5. header("Content-Type: application/force-download");
  6. readfile($ruta);
  7. ?>

solo tendrias que pasar la ruta y un nombre archivo por url... espero s eentienda...
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #3 (permalink)  
Antiguo 25/06/2009, 05:38
 
Fecha de Ingreso: marzo-2006
Mensajes: 15
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Abrir fichero local

Gracias kaninox,
aparentemente es una buena solución, pero pasa algo extraño.

Pincho en el archivo, me sale la ventana de descarga, veo que efectivamente se trata del archivo, le doy a Abrir, y añade al nombre archivo [1], quedando así: archivo[1].pdf, justo cuando abre el acrobat me dice que el fichero es erróneo.

Pruebo de otra manera, en lugar de abrir directamente, le doy a Guardar. Lo guardo, en este caso lo guarda con el nombre exacto. Lo abro, y sigue dando el mismo error.

He creado un fichero .txt para probar. Al abrir el fichero sale el siguiente mensaje dentro del txt:

<b>Warning</b>: readfile(Z:\\ficheros) [<a href='function.readfile'>function.readfile</a>]: failed to open stream: Permission denied in <b>C:\AppServ\www\descarga.php</b> on line <b>6</b>

Muchas gracias por tu rápida respuesta,
a ver si damos con la solución.
  #4 (permalink)  
Antiguo 26/06/2009, 21:31
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: Abrir fichero local

me podrias mostrar tu codigo, de hecho el href="" creo que no lestas pasando un nombre de archivo, si no lo deseas puedes ponerle cualquier nombre como archivo.extension

Código php:
Ver original
  1. <?php
  2.       $ruta = "$_GET[ruta]";
  3.       $nombre="archivo.pdf";
  4.       header ("Content-Disposition: attachment; filename=$nombre");
  5.       header("Content-Type: application/force-download");
  6.       readfile($ruta);
  7.       ?>

y tu href deberia ser mas menos

Código html:
Ver original
  1. <a href="descarga.php?ruta=file:///Z:/carpeta/archivo.pdf">Descarga tu Archivo Aqu&iacute;</a>

si no esque algo pasa y lo chequeo cuando tenga un tiempo en la red donde trabajo saludos...
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #5 (permalink)  
Antiguo 24/07/2014, 06:04
 
Fecha de Ingreso: mayo-2011
Mensajes: 3
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Abrir fichero local

Gracias kaninox.

Yo tenía un problema similar sobre sistema linux. Comentar que la carpeta/fichero a la que intentaba acceder está fuera de la carpeta localhost.

Al principio y como a quién iniciaba este hilo, el enlace no funcionaba porque hacías clic en éste y no ocurría nada y llegué a pensar que era un problema de permisos (se supone que se intenta acceder con el usuario que ejecuta PHP) pero no he conseguido nada añadiendo al grupo donde está la carpeta con el fichero, al que supongo que sería el usuario que usa el servidor.

Al final he optado por probar tu solución que me ha funcionado de forma correcta, aunque luego he cambiado el fichero descargar para que en lugar de descargar el fichero (no es lógico volver a guardar un fichero que ya está en el mismo equipo) para que en lugar de descargar el fichero sólo permita abrirlo. El contenido de este nuevo fichero "descargar.php" es el siguiente:
Código php:
Ver original
  1. <?php
  2.       $ruta = "$_GET[ruta]";    
  3.       header('Content-type: application/pdf');
  4.       readfile($ruta);
  5.      ?>

Cita:
Iniciado por kaninox Ver Mensaje
me podrias mostrar tu codigo, de hecho el href="" creo que no lestas pasando un nombre de archivo, si no lo deseas puedes ponerle cualquier nombre como archivo.extension

Código php:
Ver original
  1. <?php
  2.       $ruta = "$_GET[ruta]";
  3.       $nombre="archivo.pdf";
  4.       header ("Content-Disposition: attachment; filename=$nombre");
  5.       header("Content-Type: application/force-download");
  6.       readfile($ruta);
  7.       ?>

y tu href deberia ser mas menos

Código html:
Ver original
  1. <a href="descarga.php?ruta=file:///Z:/carpeta/archivo.pdf">Descarga tu Archivo Aqu&iacute;</a>

si no esque algo pasa y lo chequeo cuando tenga un tiempo en la red donde trabajo saludos...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:32.