Foros del Web » Programando para Internet » PHP »

Problema al leer ruta de archivo.

Estas en el tema de Problema al leer ruta de archivo. en el foro de PHP en Foros del Web. Hola!! Alguien sabe como puedo hacer para leer un archivo con php del que no conozco la ruta en donde se encuentra este archivo. Al ...
  #1 (permalink)  
Antiguo 14/11/2011, 07:29
Avatar de adrianjoselarac  
Fecha de Ingreso: julio-2011
Ubicación: Inframundo
Mensajes: 23
Antigüedad: 12 años, 9 meses
Puntos: 0
Problema al leer ruta de archivo.

Hola!!
Alguien sabe como puedo hacer para leer un archivo con php del que no conozco la ruta en donde se encuentra este archivo.

Al inicio pense en usar el campo file de html con el cual te permite seleccionar un archivo y te copia la ruta en una caja de texto ya habiendo hecho esto recurri a javascript para compiar el contenido de esta caja de texto pero no me copia la ruta completa sino solo el nombre del archivo y eso no me sirve de nada ya que no se donde esta..

hice algo mas o menos asi.

HTML:
Código HTML:
<label>W&auml;hlen Sie die File:&nbsp;</label></td><td><INPUT type=file name="nom_del_archivo" size="50px" id="n_archivo"></td><td><input type="button" value="Begin" id="agregar" onclick="llamar_functions(4);"/></td></tr> 
Luego en el archivo html donde tengo la funcion javascript llamar_functions() tengo esto:
Código:
if(q==4){
				if((document.getElementById('n_archivo').value)==""){
					alert("Kein File selected!!!");			
				}
				else{
					var n_file;
					n_file=document.getElementById('n_archivo').value;
					alert(n_file);		
				}
			}
todo bien excepto que no copia la ruta absoluta. alguien tiene alguna idea de como hacerlo.

Saludos y gracias por la ayuda!!!!
  #2 (permalink)  
Antiguo 14/11/2011, 07:39
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Problema al leer ruta de archivo.

te recuerdo que PHP es un lenguaje del lado del servidor, el NO puede leer archivos del cliente directamente, necesitas hacer un form upload y enviarlo.

además, si añades el archivo a un input file ¿como es posible que no sepas su ruta?
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 14/11/2011 a las 07:46
  #3 (permalink)  
Antiguo 14/11/2011, 07:51
Avatar de adrianjoselarac  
Fecha de Ingreso: julio-2011
Ubicación: Inframundo
Mensajes: 23
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema al leer ruta de archivo.

Hola maycolalvarez!!! gracias por tu pronta respuesta!!!

Creo que me has entendido mal lo que trato de hacer es solo copiar la ruta donde esta el archivo para asi saber donde esta ubicado el archivo luego ya sabiendo la ruta de ubicacion del archivo podre trabajar sobre el.

el javascript lo utilizo solo para copiar lo que esta en el campo hidden con el id="n_archivo". luego a traves de una funcion ajax llamare al archivo php que me leera el archivo que escogio el usuario. pero para leerlo primero tengo que saber donde esta..

No quiero subir el archivo simplemente necesito la ruta donde esta pero no me copia la ruta absoluta sino solo el nombre del archivo ej. la ruta absoluta seria:
C:/blabla/archivo.txt pero al asignar el valor del campo a una variable javascript solo me aparece el archivo .txt

Espero haberme podido explicar mejor.
Saludos.
  #4 (permalink)  
Antiguo 14/11/2011, 07:58
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Problema al leer ruta de archivo.

PHP es del lado del Servidor, no puede leer archivos ubicados en el Cliente, parece que el que no entiende el ámbito de ejecución entre PHP y javascript eres tú, además Javascript tampoco tiene Acceso al IO, por lo que no puedes leer el archivo del cliente desde javascript.

La única forma de leerlo con PHP es subirlo (upload)
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #5 (permalink)  
Antiguo 14/11/2011, 08:38
Avatar de adrianjoselarac  
Fecha de Ingreso: julio-2011
Ubicación: Inframundo
Mensajes: 23
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema al leer ruta de archivo.

Tengo muy claro la forma de trabajar de PHP y Javascript no es necesario ninguna explicacion seguramente la formulacion de mi pregunta no ha sido la correcta..

Gracias por tus respuestas.
  #6 (permalink)  
Antiguo 14/11/2011, 09:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema al leer ruta de archivo.

Si quitas el atributo enctype de tu formulario, al enviar el archivo, el browser te enviará la ruta (a PHP) pero sin el archivo, es decir, en lugar de rescatar usando $_FILES['archivo'], lo leerás usando $_POST['archivo'].

Saludos.
  #7 (permalink)  
Antiguo 14/11/2011, 09:46
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Problema al leer ruta de archivo.

como maycol bien te indico, no es posible obtener la ruta del archivo, si te fijas haciendo esto
Código HTML:
Ver original
  1.     <script>
  2.         function cargar(){
  3.             document.loquesea.name.value = document.loquesea.file.value;
  4.         }
  5.     </script>
  6.     <body>
  7.         <form name="loquesea" action="" method="post">
  8.             <input type="file" name="file" onchange="cargar()" />
  9.             <input type="text" name="name" />
  10.         </form>
  11.     </body>
  12. </html>
si tu seleccionas un archivo ve que el text se coloca solo el nombre auque el campo file tenga la ruta completa, una vez quice hacer algo parecido y no me quedo de otra que subirlo a mi servidor, saludos

Edit
GatorV hice la prueba y solo me envia el nombre del archivo ,
Cita:
array(2) {
["file"]=>
string(22) "control_de_estudio.sql"
["name"]=>
string(22) "control_de_estudio.sql"
}
ese es el resultado de un var_dump a $_POST, ya yo me había molestado porque había llenado el server de archivos de mas XD, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Última edición por carlos_belisario; 14/11/2011 a las 10:08
  #8 (permalink)  
Antiguo 14/11/2011, 09:49
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Problema al leer ruta de archivo.

entonces no entiendo cual es tu escenario, en primera instancia dices que el usuario selecciona la ubicación del archivo, tú usuario está en el cliente (navegador), luego dices que necesitas dicha ruta (path) para que mediante AJAX se lea el archivo por php (servidor), he allí el desfase de tu escenario, porque independientemente de que logres obtener el path del cliente ¿como php si está en el server va a leer un archivo del cliente?!!!!!!!!, debes aclarar y detallar muy bien que es lo que quieres, porque de esa forma es imposible ayudarte, saludos.
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #9 (permalink)  
Antiguo 14/11/2011, 10:02
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Problema al leer ruta de archivo.

Cierto, al parecer versiones más nuevas de los browsers solo te envían el nombre aunque no tenga el atributo.

Como es un comportamiento específico de cada Browser, las versiones más modernas (FF 3+, Chrome, IE8+) ya no envían el path de acuerdo al RFC 2388. Por lo que si estas desarrollando para una versión pública no vas a poder hacer nada.

Si tienes control de que navegador va a usar el usuario, te recomendaría que usaran IE6|7, o FF2 que sí te envían el path de esa manera.

Saludos.

Etiquetas: html, ruta
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 19:32.