Foros del Web » Programando para Internet » PHP »

Obtener path archivo HTML+PHP

Estas en el tema de Obtener path archivo HTML+PHP en el foro de PHP en Foros del Web. Hola! Mi idea es tener tener un script que me permita mediante FTP subir archivos a un servidor. Mi script consta de dos partes. 1. ...
  #1 (permalink)  
Antiguo 08/04/2012, 10:48
 
Fecha de Ingreso: marzo-2012
Mensajes: 21
Antigüedad: 12 años
Puntos: 0
Obtener path archivo HTML+PHP

Hola!

Mi idea es tener tener un script que me permita mediante FTP subir archivos a un servidor.

Mi script consta de dos partes.
1. En la parte de HTML haciendo uso del type= file (http://www.cs.tut.fi/~jkorpela/forms/file.html) el usuario mediante una ventana elige el archivo que desea que sea subido.
2. En la parte de PHP necesito EL PATH ABSOLUTO DEL CLIENTE donde se encuentra ese archivo (ya que cada cliente elegirá el archivo que quiera, es necesario conoce el path absoluto). Mediante las funciones de PHP de FTP subiría ese archivo al servidor.

He leído que por motivos de seguridad type=file no devuelve el path. ¿De qué manera puedo realizar esto?

Ya de paso, aunque menos importante, para type=file puede establecer filtros de los archivos que serán seleccionables (image/jpg, ...)... Pero el que yo quiero es para un archivo de texto .csv, y text/csv no es un tipo MIME reconocido por lo que no me funciona. Este pequeño incoveniente he logrado arreglarlo por código (una vez se quiera subir el archivo, comprobar que la extensión es .csv), pero me gustaría saber si se puede usar un filtro que permita eso.

Muchas gracias.
  #2 (permalink)  
Antiguo 08/04/2012, 11:15
Avatar de JaimeMSE  
Fecha de Ingreso: diciembre-2010
Ubicación: Isla Cristina (Huelva)
Mensajes: 164
Antigüedad: 13 años, 4 meses
Puntos: 7
Respuesta: Obtener path archivo HTML+PHP

Puedes usar lo mismo que Wordpress:

Código PHP:
Ver original
  1. define('ABSPATH', dirname(__FILE__).'/');

Para usar eso sería:

Código PHP:
Ver original
  1. <a href="<?php echo ABSPATH; ?>loquesiga.html>Enlace</a>
__________________
@JaimeMSE - ¡Sígueme!
  #3 (permalink)  
Antiguo 08/04/2012, 11:52
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Obtener path archivo HTML+PHP

Cita:
Iniciado por Lord_Herman Ver Mensaje
Hola!

Mi idea es tener tener un script que me permita mediante FTP subir archivos a un servidor.

Mi script consta de dos partes.
1. En la parte de HTML haciendo uso del type= file (http://www.cs.tut.fi/~jkorpela/forms/file.html) el usuario mediante una ventana elige el archivo que desea que sea subido.
2. En la parte de PHP necesito EL PATH ABSOLUTO DEL CLIENTE donde se encuentra ese archivo (ya que cada cliente elegirá el archivo que quiera, es necesario conoce el path absoluto). Mediante las funciones de PHP de FTP subiría ese archivo al servidor.

He leído que por motivos de seguridad type=file no devuelve el path. ¿De qué manera puedo realizar esto?

Ya de paso, aunque menos importante, para type=file puede establecer filtros de los archivos que serán seleccionables (image/jpg, ...)... Pero el que yo quiero es para un archivo de texto .csv, y text/csv no es un tipo MIME reconocido por lo que no me funciona. Este pequeño incoveniente he logrado arreglarlo por código (una vez se quiera subir el archivo, comprobar que la extensión es .csv), pero me gustaría saber si se puede usar un filtro que permita eso.

Muchas gracias.

Para hacer lo que comentas, debes subir primero el fichero a tu servidor, y desde ahí subirlo al ftp (si es diferente).
A groso modo:
1.- El usuario usa el formulario para seleccionar el fichero
2.- Desde php subes ese fichero a tu servidor (busca por move_upload_file)
3.- Haces las comprobaciones necesarias de tipo de fichero, tamaño, o lo que quieras.
4.- Conectas y subes el fichero por ftp
5.- (opcional) si no quieres ocupar sitio en tu servidor, borras el fichero subido.
  #4 (permalink)  
Antiguo 08/04/2012, 12:35
 
Fecha de Ingreso: marzo-2012
Mensajes: 21
Antigüedad: 12 años
Puntos: 0
Respuesta: Obtener path archivo HTML+PHP

Cita:
Iniciado por JaimeMSE Ver Mensaje
Puedes usar lo mismo que Wordpress:

Código PHP:
Ver original
  1. define('ABSPATH', dirname(__FILE__).'/');

Para usar eso sería:

Código PHP:
Ver original
  1. <a href="<?php echo ABSPATH; ?>loquesiga.html>Enlace</a>
Hola JaimeMSE,

No entiendo lo que quieres decir.

Hasta donde llego a entender, __FILE__ contiene el nombre del script PHP, y yo lo que quiero es el PATH del fichero seleccionado mediante un type=file, no el del script desde el cual lo invoco.

Muchas gracias.
  #5 (permalink)  
Antiguo 08/04/2012, 12:37
 
Fecha de Ingreso: marzo-2012
Mensajes: 21
Antigüedad: 12 años
Puntos: 0
Respuesta: Obtener path archivo HTML+PHP

Cita:
Iniciado por DooBie Ver Mensaje
Para hacer lo que comentas, debes subir primero el fichero a tu servidor, y desde ahí subirlo al ftp (si es diferente).
A groso modo:
1.- El usuario usa el formulario para seleccionar el fichero
2.- Desde php subes ese fichero a tu servidor (busca por move_upload_file)
3.- Haces las comprobaciones necesarias de tipo de fichero, tamaño, o lo que quieras.
4.- Conectas y subes el fichero por ftp
5.- (opcional) si no quieres ocupar sitio en tu servidor, borras el fichero subido.
Hola DooBie,

Pero estamos en las mismas:
2.- Desde php subes ese fichero a tu servidor (busca por move_upload_file)
Una vez tengo elegido el fichero desde HTML, necesito el path para pasarle el PATH+nombreFichero a la función de PHP... ¿o no es así?

Muchas gracias.
  #6 (permalink)  
Antiguo 08/04/2012, 14:13
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Obtener path archivo HTML+PHP

Cita:
Iniciado por Lord_Herman Ver Mensaje
Hola DooBie,

Pero estamos en las mismas:
2.- Desde php subes ese fichero a tu servidor (busca por move_upload_file)
Una vez tengo elegido el fichero desde HTML, necesito el path para pasarle el PATH+nombreFichero a la función de PHP... ¿o no es así?

Muchas gracias.
Busca en google y mirate la ayuda de php.net, que tienes los conceptos un poco confusos.
  #7 (permalink)  
Antiguo 08/04/2012, 21:56
 
Fecha de Ingreso: marzo-2012
Mensajes: 21
Antigüedad: 12 años
Puntos: 0
Respuesta: Obtener path archivo HTML+PHP

Cita:
Iniciado por DooBie Ver Mensaje
Busca en google y mirate la ayuda de php.net, que tienes los conceptos un poco confusos.
Hola DooBie, he estado indagando más acerca de move_uploaded_file y he encontrado un ejemplo bastante aclarativo:
http://www.tizag.com/phpT/fileupload.php?MAX_FILE_SIZE=100000&uploadedfile=g raficaEj.html

El proble es que pruebo eso pero no llega a funcionarme el move_uploaded_file (por lo que deduzco de la salida por pantalla). Adjunto el código que empleo:

Código HTML:
 <body>		
		<form action="excel.php" method="POST" enctype="multipart/form-data">
			Usuario: <input type="file" name="uploadedfile" />
			<input type="submit" value="Subir" />
		</form>
	</body> 
Código PHP:
    $target_path "/Users/Yo/Desktop/temp/";
    
$target_path $target_path basename$_FILES["uploadedfile"]["name"]);
    
    
$a=move_uploaded_file($_FILES["uploadedfile"]["tmp_name"], $target_path);

    echo 
"Arg1: " $_FILES["uploadedfile"]["tmp_name"] . "<br>";
    echo 
"Arg2: " $target_path "<br>";
    echo 
"Resultado de move: " $a "<br>"
Mi salida por pantalla (lo que se me muestra en el navegador es):
Arg1: /private/var/tmp/phpWKCYLe
Arg2: /Users/Yo/Desktop/temp/archivo.pdf
Resultado de move:

El archivo temporal que se indica en Arg1 no se me llega a crear (o se crea y se destruye, ya que cuando listo ese directorio ese archivo no existe). Además, ese directorio tiene todos los permisos habilitados (777).
El directorio al cual lo quiero mover SÍ lo he creado previamente y le he dado todos los permisos (777).
En la variable $a no se llega a guardar nada, por lo que supongo que es el move_uploaded_file el que no me termina de funcionar.

He estado mirando la consola de errores del navegador y no me salta ningún fallo ni warning.

Todo esto lo estoy realizando bajo un entorno MAC OS X (por el formato de los path).

PD: Por lo que me comentaste anteriormente, con move_upload_file puedo mover incluso el archivo a un servidor remoto? (todavía no me he documentado acerca de esto ya que ni he podido moverlo en local).

Muchas gracias por todo.

Última edición por Lord_Herman; 08/04/2012 a las 22:03
  #8 (permalink)  
Antiguo 08/04/2012, 22:17
 
Fecha de Ingreso: marzo-2012
Mensajes: 21
Antigüedad: 12 años
Puntos: 0
Respuesta: Obtener path archivo HTML+PHP

Edito.

He activado los warnings y ahora me aparece por pantalla:
Warning: move_uploaded_file(/Users/Yo/Desktop/temp/archivo.pdf): failed to open stream: Permission denied in /Library/WebServer/Documents/script.php on line 58 Warning: move_uploaded_file(): Unable to move '/private/var/tmp/phpzz1Sgr' to '/Users/Yo/Desktop/temp/archivo.pdf' in /Library/WebServer/Documents/script.php on line 58

Donde la línea 58 es la llamada a la función move_uploaded_file.

He estado buscando, y tengo deshabilitado el safe_mode de PHP 5. Además ambas carpetas tienen todos los permisos (777).
  #9 (permalink)  
Antiguo 08/04/2012, 22:29
 
Fecha de Ingreso: marzo-2012
Mensajes: 21
Antigüedad: 12 años
Puntos: 0
Respuesta: Obtener path archivo HTML+PHP

Vale, ya podéis lincharme a pedradas.

SÍ era un problema de permisos. A la carpeta a la cual quería mover todo sí tenía permisos para todo, pero por encima de ella, en el árbol de carpetas, alguna no tendría los permisos adecuados.

Me he creado una carpeta en el directorio raíz con todos los permisos y ya funciona.

Perdón por las molestias.

PD:Voy a probar ahora a mover un archivo desde mi equipo a un servidor.
  #10 (permalink)  
Antiguo 08/04/2012, 22:39
 
Fecha de Ingreso: marzo-2012
Mensajes: 21
Antigüedad: 12 años
Puntos: 0
Respuesta: Obtener path archivo HTML+PHP

A ver... después de repasar mis conceptos sobre PHP, creo que he entendido la idea de mover a un servidor.

Cuando el usuario accede al script (llamémosle www.script.com), la parte HTML sí que se ejecuta en su equipo, por lo que se conoce la estructura de los directorios; cuando pulsas sobre el submit, el archivo indicado se le pasa al servidor PHP.

Dado que PHP se ejecuta en la parte del servidor, y llegados a este punto ya le has pasado el archivo, ahora sí puedes moverlo (con rutas absolutas) a donde quieras, ya que para todo el mundo el servidor va a ser el mismo.

¿Es esto a lo que te referías no?

Muchas gracias.
  #11 (permalink)  
Antiguo 09/04/2012, 03:43
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Obtener path archivo HTML+PHP

Cita:
Iniciado por Lord_Herman Ver Mensaje
A ver... después de repasar mis conceptos sobre PHP, creo que he entendido la idea de mover a un servidor.

Cuando el usuario accede al script (llamémosle www.script.com), la parte HTML sí que se ejecuta en su equipo, por lo que se conoce la estructura de los directorios; cuando pulsas sobre el submit, el archivo indicado se le pasa al servidor PHP.

Dado que PHP se ejecuta en la parte del servidor, y llegados a este punto ya le has pasado el archivo, ahora sí puedes moverlo (con rutas absolutas) a donde quieras, ya que para todo el mundo el servidor va a ser el mismo.

¿Es esto a lo que te referías no?

Muchas gracias.
Me alegro que al final te funcione, y ya sabes a lo que me referia en cuanto a conceptos confusos, lo de cliente/servidor.
Es algo básico pero mucha gente no lo sabe, desde el servidor, no puedes conocer el arbol de directorios del cliente.

Saludos

Etiquetas: html, path, usuarios
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 16:58.