Foros del Web » Programando para Internet » PHP »

descargar y crear carpetas en un equipo diferente al del servidor PHP

Estas en el tema de descargar y crear carpetas en un equipo diferente al del servidor PHP en el foro de PHP en Foros del Web. Hola a todos. Mi duda es la siguiente: Se puede crear una carpeta en el disco duro del servidor PHP mediante el código: <?php mkdir("/php", ...
  #1 (permalink)  
Antiguo 28/11/2007, 06:05
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 8 meses
Puntos: 7
Sonrisa descargar y crear carpetas en un equipo diferente al del servidor PHP

Hola a todos. Mi duda es la siguiente:

Se puede crear una carpeta en el disco duro del servidor PHP mediante el código:

<?php
mkdir("/php", 0700);
?>

De esta manera, crearíamos la carpeta de nombre "php" que cuelga del raiz del disco duro y con los permisos básicos.

Pero, es posible crear esa misma carpeta en el disco duro de otra máquina que no sea la misma que la del servidor php y luego descargar alli ficheros????

Me gustaría poder crear una pagina web en php con un formulario donde el usuario seleccionara ciertos ficheros alojados en su equipo y que la página web por debajo creara un carpeta en el disco duro de otra máquina y alojara alli todos esos ficheros que el usuario seleccionó de su disco duro mediante el formulario.

Nose si estas cosas se podrán hacer.......


Saludos.
  #2 (permalink)  
Antiguo 28/11/2007, 06:11
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 20 años, 10 meses
Puntos: 0
Re: descargar y crear carpetas en un equipo diferente al del servidor PHP

Hola, si que se puede, pero al ser un servidor remoto, deberías hacerlo por ftp.

http://es.php.net/ftp

SALUDOS
Ruymán Trujillo
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #3 (permalink)  
Antiguo 28/11/2007, 06:33
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 8 meses
Puntos: 7
Re: descargar y crear carpetas en un equipo diferente al del servidor PHP

Gracias por responder. Encontre un ejemplillo como este:

<?php
// create directory through FTP connection
function FtpMkdir($path, $newDir) {

$server='ftp.yourserver.com'; // ftp server
$connection = ftp_connect($server); // connection


// login to ftp server
$user = "me";
$pass = "password";
$result = ftp_login($connection, $user, $pass);

// check if connection was made
if ((!$connection) || (!$result)) {
return false;
exit();
} else {
ftp_chdir($connection, $path); // go to destination dir
if(ftp_mkdir($connection,$newDir)) { // create directory
return $newDir;
} else {
return false;
}
ftp_close($conn_id); // close connection
}

}
?>


El problema es que el servidor donde quiero crear la carpeta funciona de modo seguro por SFTP asi que no creo que funcione la función "ftp_connect()" no??

Por SFTP_connect() no he encontrado nada por internet.

He probado a conectarme utilizando el ejemplo anterior pero se excede el tiempo máximo de ejecución del script porque no llega a conectarse. El problema es que en la máquina remota está "corriendo" un servidor ssh por lo que supongo que solo funcionará si entro por SFTP y no FTP. Utilizando un software como el WinSCP entro perfectamente a la máquina asi que creo que el problema es que por FTP normal no entra.


Existe alguna solucion a este problema??
  #4 (permalink)  
Antiguo 28/11/2007, 07:23
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 20 años, 10 meses
Puntos: 0
Re: descargar y crear carpetas en un equipo diferente al del servidor PHP

Holas otra vez:

Utiliza ftp_ssl_connect();
http://es.php.net/manual/es/function...sl-connect.php

SALUDOS
Ruymán Trujillo
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #5 (permalink)  
Antiguo 28/11/2007, 08:39
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 8 meses
Puntos: 7
Re: descargar y crear carpetas en un equipo diferente al del servidor PHP

Gracias de nuevo por responder.

No quiero ser pesado, pero leyendo el link que me pasastes, uno de los comentarios pone:

Just remember: SSL FTP != SFTP


Es decir, yo interpreto que SSL FTP lo que hace es encriptar la información que viaja por la red pero sigue utilizando el puerto 21 típico del FTP normal.

En cambio los servidores SFTP escuchan por el puerto 22.


Nose si estaré equivocado.....De todas maneras voy a probar si eso me funciona.


Y de nuevo muchas gracias por las molestias.
  #6 (permalink)  
Antiguo 28/11/2007, 15:34
Avatar de RUX
RUX
 
Fecha de Ingreso: enero-2004
Ubicación: Las Palmas de Gran Canari
Mensajes: 566
Antigüedad: 20 años, 10 meses
Puntos: 0
Re: descargar y crear carpetas en un equipo diferente al del servidor PHP

Hola otra vez, si no te funciona con la función anterior prueba con esta:

ssh2_sftp();
http://es.php.net/manual/es/function.ssh2-sftp.php

SALUDOS
Ruymán Trujillo
__________________
Rux.es - Sitio Personal | IslaRock.com - Todo Rock
  #7 (permalink)  
Antiguo 28/11/2007, 18:29
 
Fecha de Ingreso: marzo-2004
Mensajes: 550
Antigüedad: 20 años, 8 meses
Puntos: 7
Re: descargar y crear carpetas en un equipo diferente al del servidor PHP

Hola de nuevo jeje.

Parece que esa es la solución que queria.

La cosa está ahora en que por defecto en mi version de php (v5.2.3 de windows) no viene la libreria php_ssh2.dll.

Entonces leyendo por internet ví que habia que bajarse justo el paquete pcl que coincida exactamente con la version de php instalada y luego añadir la libreria php_ssh2.dll en el directorio de las extensiones de php y añadir la linea:

extension=php_ssh2.dll en el fichero php.ini y reiniciar el servidor.

Hice todo eso pero cuando reinicio el servidor me sale el error:

"No se encuentra el ordinal 2996 en la biblioteca de vínculos dinámicos LIBEAY32.dll".

Realmente no tengo ni idea de a que se debe. Y no me reconoce la llamada a la funcion "ssh2_connect" porque no debe estar instalada correctamente la extension mencionada anteriormente.

He visto que para linux hace falta ademas añadir las librerías OpenSSL y libssh2 pero para windows no pone nada de eso.

Me falta hacer alguna cosa mas??


Saludos y de nuevo gracias por responderme.
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 12:08.