Publicentral.com - promocion de paginas webpromocion de paginas web
Mostrando Codigo - Php
Code

Php - Subir archivos a servidor via FTP y php

Códigos Php

Cuando trabajamos con archivos y queremos subirlos dinamicamente al servidor este codigo puede ser una opcion muy util, hacer upload mediante FTP.
Visitas: 56,992 - 27/06/2006 21:05:16
CODIGO SIN DEMOSTRACIONNO CONTIENE ARCHIVO DESCARGABLEComentario
CODIGO
Codigo probado en ChromeCodigo probado en Mozilla FirefoxCodigo probado en Internet Explorer 7+Codigo probado en OperaCodigo probado en Safari


// Codigo ofrecido por Tutores.org

  1. <?
  2. $servidor_ftp = "ftp.tu_ftp.com";
  3. $conexion_id = ftp_connect($servidor_ftp);
  4. $ftp_usuario = "usuario";
  5. $ftp_clave = "contraseña";
  6. $ftp_carpeta_local =  $_SERVER['DOCUMENT_ROOT'] . "/tu_carpeta/local/";
  7. $ftp_carpeta_remota= "/tu_carpeta/remota/";
  8. $mi_nombredearchivo="nombre_archivo.jpg";
  9. $nombre_archivo = $ftp_carpeta_local.$mi_nombredearchivo;
  10. $archivo_destino = $ftp_remote_path.$mi_nombredearchivo;
  11. $resultado_login = ftp_login($conexion_id, $ftp_usuario, $ftp_clave);
  12. if ((!$conexion_id) || (!$resultado_login)) {
  13.        echo  "La conexion ha fallado! al conectar con  $servidor_ftp para usuario $ftp_usuario";
  14.        exit;
  15.    } else {
  16.        echo "Conectado con $servidor_ftp, para usuario $ftp_usuario";
  17.    }
  18. $upload = ftp_put($conexion_id, $archivo_destino, $nombre_archivo, FTP_BINARY);
  19. if (!$upload) {
  20.        echo "Ha ocurrido un error al subir el archivo";
  21.    } else {
  22.        echo "Subido $nombre_archivo a $servidor_ftp as $archivo_destino";
  23.    }
  24. ftp_close($conexion_id);
  25. ?>



ENLACE AL CODIGO
Si quieres enlazar desde tu pagina a este codigo
<!-- Inicio enlace Tutores.org -->
<a title="Tutores.org - Subir archivos a servidor via FTP y php" href="http://www.tutores.org/codigo/1637/" target="_blank">Subir archivos a servidor via FTP y php</a>
<!-- Final enlace Tutores.org -->
COMENTARIOS
Comentario usuario
Edgar Gonzalez
1 5
Oye te filicito esa super nitido ese algoritmo quisiera puedan proporcionarme la forma de como puedo subir una carpeta completa con todos sus archivos que tiene adentro o que pueda enviar varios archivos que yo seleccione

de antemano muchas gracias
Comentario usuario
besotico
5 5
El algoritmo, hermoso, realmente muy claro y simplificado, el problema es que me dice que si sube, y realmente no lo hace...

ya probe la conexion y me anda bien... y la carpeta de destino probe con chmod "777" y "7777".


saludos!
Comentario usuario
Eduardo Piña
1 5
Si no me equivoco lo correcto es 0777
Y el 7 no se puede obviar

Saludos !!!
Comentario usuario
Eduardo Piña
3 5
Perdon quice escribir el 0 XD
Comentario usuario
21/03/2005 16.36.25
4 5
que tal amigos, yo quisiera saber como subo un archivo a un servidor ftp desde mi ordenador, es decir no con la funcion ftp_put q tengo entendido que esa funcion envia ficheros desde servidor a servidor, yo lo que quiero es subir archivos desde mis documentos, o cualquier otro directorio a mi servidor ftp
Comentario usuario
j@hotmail.com
5 5
etas buena EL DESARROLLO DE ESTO ME INTERESA QUI SIERA CONOCER MAS DEL TEMA RELACIONADO POR LO TAN SE HAGA LLEGAR LA INFORMACION AL CORREO
Comentario usuario
Rodrigo Quinteros
4 5
hice unos cambios en tu codigo para subir archivos usando un input tipo file mediante metodo post.Asumiendo que este inpput se llama archivo y que el nombre final del archivo en el servidor seria un codigo(recibido por post) + el nombre original el codigo es el siguiente
<?php
$servidor_ftp = "ftp.dominiol";
$conexion_id = ftp_connect($servidor_ftp);
$ftp_usuario = "usuario";
$ftp_clave = "contraseña";
$local = $_FILES["archivo"]["name"];//archivo es el nombre del input del form
// Este es el nombre temporal del archivo mientras dura la transmisión
$remoto = $_FILES["archivo"]["tmp_name"];
$varnombre1 = str_replace (" ", "_", $_POST['codigo']);//day nombre tomando un codigo desde el form
$ruta = $varnombre1.str_replace (" ", "_", $local);
$ftp_carpeta_local =$local;
$ftp_carpeta_remota= "/tu carpeta/destino/";//destino en el servidor ftp
$mi_nombredearchivo=$ruta;
//nombre de archivo es el archivo temporal que esta en el servidor ftp
$nombre_archivo = $remoto;
$archivo_destino = $ftp_carpeta_remota.$mi_nombredearchivo;
$resultado_login = ftp_login($conexion_id, $ftp_usuario, $ftp_clave);
if ((!$conexion_id) || (!$resultado_login)) {
echo "La conexion ha fallado! al conectar con $servidor_ftp para usuario $ftp_usuario";
exit;
} else {
echo "Conectado con $servidor_ftp, para usuario $ftp_usuario";
}
$upload = ftp_put($conexion_id, $archivo_destino, $nombre_archivo, FTP_BINARY);
if (!$upload) {
echo "Ha ocurrido un error al subir el archivo";
} else {
echo "Subido $nombre_archivo a $servidor_ftp as $archivo_destino";
}
ftp_close($conexion_id);
?>
Comentario usuario
Diego Tabares
2 5
muy interesante tu codigo, tengo solo una pregunta.
al indicar la carpeta remota, si esta no existe, esta se crea?
Comentario usuario
01-12-2007 02:22:42
2 5
excelente escrip ni idea tenia como funcionaba una coneccion a ftp pues gracias a ud. me libre de un problemon que tenia gracias.
Comentario usuario
15-02-2008 09:55:37
4 5
Hola muy bueno el post pero me queda una duda, como quedaria el form para poder aplicar este codigo??
Comentario usuario
21-02-2008 12:14:24
3 5
Hola, tengo una pregunta... se me conecta al servidor pero no me sube el archivo, me puedes aclarar la linea de carpeta de destino?
por ejemplo mi ftp es : ftp.midominio.com y la carpeta es fotos,
cual seria la manera de poner esta linea.. gracias por tu aporte
INSERTAR COMENTARIO

Usuario:
Email:
Comentario:
Codigo Seguridad


Antes de enviar un comentario...
Todos los comentarios son revisados personalmente
Todo comentario que no haga relacion al codigo mostrado en esta pagina sera eliminado

Usuarios registrados tienen preferencia en recibir respuestas de ayuda!!
Ademas de poder insertar Imagenes,Enlaces y otras propiedades del editor.
Por favor, insertar los comentarios descriptivos.