Foros del Web » Programando para Internet » PHP »

Subir archivos por FTP

Estas en el tema de Subir archivos por FTP en el foro de PHP en Foros del Web. Saludos. Estoy desarrollando una pagina a traves de la cual se suben unos archivos al servidor. Para ello inicialmente establezco la conexion con el mismo, ...
  #1 (permalink)  
Antiguo 16/08/2005, 09:46
 
Fecha de Ingreso: mayo-2004
Mensajes: 16
Antigüedad: 13 años, 6 meses
Puntos: 0
Subir archivos por FTP

Saludos.

Estoy desarrollando una pagina a traves de la cual se suben unos archivos al servidor. Para ello inicialmente establezco la conexion con el mismo, cambio de directoriro y posteriormente los subo con ftp_put. El problema esta en que no me sube los archivos y ya estoy segura que el ftp_connet y el ftp_chdir funcionan correctamente. Los parametros que paso a traves del ftp_put son el identificador de la conexion, el nombre del archivo remoto, la ruta del archivo local y la forma de transmision que es Binaria.

el codigo es el siguiente

$id_ftp=ftp_connect(SERVER,PORT); //Obtiene un manejador del Servidor FTP
$login_result = ftp_login ($id_ftp,USER,PASSWORD);
if ((!$id_ftp) || (!$login_result))
{
echo "conexion fallida!"; die;
} else {
echo "Conectado.";
}
ftp_pasv($id_ftp,true); //Establece el modo de conexión
if (ftp_chdir($id_ftp,'/var/www/html/super/'))
echo "cambio dir";
else
echo "bad";
if((ftp_put($id_ftp,$archivo_remoto,$archivo_local ,FTP_BINARY)) == TRUE)
echo "trasmitido ok";
else
echo "error de transmision";

Donde $archivo_remoto = temporal.txt y $archivo_local lo tomo con una caja de texto tipo file.

Siempre obtengo el mismo mensaje de error de transmision y ya verifique que las variables se transmitan correctamente.

Agradezco su colaboracion.
  #2 (permalink)  
Antiguo 16/08/2005, 12:51
Avatar de turco_7  
Fecha de Ingreso: diciembre-2003
Ubicación: Córdoba, Argentina
Mensajes: 1.044
Antigüedad: 14 años
Puntos: 19
hola, como te va ? porque no probas de otra forma, o si o si, tiene que ser por medio del FTP ?

Te muestro un ejemplo ... si ? es usando el comando move_uploaded_file de php, pero tenes que terner en cuenta que antes de probarlo, la carpeta a la cual queres subir esos archivo, tiene que tener permisos de escritura .. saludos y suerte con el script .. byebye

Formulario
Código HTML:
<form action="subearchivo.php" method="post" enctype="multipart/form-data"> 
    <b>Enviar un nuevo archivo: </b> 
    <br> 
    <input name="userfile" type="file"> 
    <br> 
   <input type="submit" value="Enviar"> 
</form> 
Código PHP:
<?php 
$nombre_archivo 
$HTTP_POST_FILES['userfile']['name']; 
$tipo_archivo $HTTP_POST_FILES['userfile']['type']; 
$tamano_archivo $HTTP_POST_FILES['userfile']['size']; 
if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){ 
    echo 
"<h3>El archivo ha sido cargado correctamente.</h3>"
}else{ 
    echo 
"<h3>Ocurrió algún error al subir el fichero. No pudo guardarse.</h3>"
}
?>
__________________
Mi Blog http://turco7.blogspot.com
Usuario Linux : 404289
Mi última página: http://www.digitalservicecba.com.ar - Reparacion de camaras digitales!
  #3 (permalink)  
Antiguo 30/09/2005, 15:41
 
Fecha de Ingreso: mayo-2003
Mensajes: 544
Antigüedad: 14 años, 6 meses
Puntos: 1
Y en ese codigo..., ¿en donde aclaro en que carpeta de mi servidor se sube el archivo?
Gracias
__________________
CSSBoulevar
Recursos para diseñadores y programadores webs
  #4 (permalink)  
Antiguo 30/09/2005, 15:56
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
Código PHP:
<?php
$nombre_archivo 
$HTTP_POST_FILES['userfile']['name'];
$tipo_archivo $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo $HTTP_POST_FILES['userfile']['size'];
// Ahí mero:
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "/carpeta/".$nombre_archivo)){
    echo 
"<h3>El archivo ha sido cargado correctamente.</h3>";
}else{
    echo 
"<h3>Ocurrió algún error al subir el fichero. No pudo guardarse.</h3>";
}
?>
Yap? Solo que tienes que cambiar /carpeta/ por donde le tienes que poner el archivo. Aclaro que tienes que tener el CHMOD de esa carpeta a 777.
  #5 (permalink)  
Antiguo 01/02/2006, 14:19
 
Fecha de Ingreso: diciembre-2002
Mensajes: 472
Antigüedad: 15 años
Puntos: 0
problema

Segui todas las indicaciones, pero no me funciona , porque podria ser?
saludos
  #6 (permalink)  
Antiguo 02/02/2006, 06:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si algo no funciona .. suele dar algún mensaje de error .. Si lo indicas mejor .. y ya que aquí expusieron varios códigos para resolver el problema . .mejor indica el que uses.

Te recomendaría iniciar un tema nuevo (con el código que probastes y que error o efecto observas no deseado concreto), y ver la documentación oficial de PHP (en las FAQ's de este foro también tienes ejemplos):

http://www.php.net/manual/es/features.file-upload.php

Un saludo,
  #7 (permalink)  
Antiguo 02/02/2006, 11:43
 
Fecha de Ingreso: diciembre-2002
Mensajes: 472
Antigüedad: 15 años
Puntos: 0
Cluster, el tema es que si abro un nuevo tema seguramente me van a decir que chequee las faq y he probado todo tipo de scripts tanto de aca como de otros sitios. Pero es simple, cuando en el formulario que procesa hago un:
echo("archivo es".$HTTP_POST_FILES['userfile']['name']);
ni siqueira trae nada siendo que el form esta correctamente creado:

<input type="hidden" name="MAX_FILE_SIZE" value="1000">
<input name="userfile" type="file" />

y el script que recibe creo que tambien:
$uploaddir = "public_html/images/";

$uploadfile = $uploaddir . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)) {
print("File upload was successful");
} else {
print("File upload failed");
}

Leo bien el name pero siempre al procesar me aparece:"File upload failed"
Gracias desde ya si puedes ayudarme.
  #8 (permalink)  
Antiguo 02/02/2006, 12:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por tico74
Cluster, el tema es que si abro un nuevo tema seguramente me van a decir que chequee las faq y he probado todo tipo de scripts tanto de aca como de otros sitios. Pero es simple, cuando en el formulario que procesa hago un:
echo("archivo es".$HTTP_POST_FILES['userfile']['name']);
ni siqueira trae nada siendo que el form esta correctamente creado:

<input type="hidden" name="MAX_FILE_SIZE" value="1000">
<input name="userfile" type="file" />

y el script que recibe creo que tambien:
$uploaddir = "public_html/images/";

$uploadfile = $uploaddir . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadfile)) {
print("File upload was successful");
} else {
print("File upload failed");
}

Leo bien el name pero siempre al procesar me aparece:"File upload failed"
Gracias desde ya si puedes ayudarme.
Es que lo que debes hacer es colocar el código -integro- y -completo- que uses .. ahí nos dices que mensajes de error usas y te indicaremos que cosas checkear (configuración de PHP, hacer algún "echo" a alguna variable como $_FILES .. etc).

Ese es el detalle. Si no lo haces así .. por ejemplo con el código que presenteas no se vé donde defines tu formulario (<form ... ..>), por ahí podrías tener el problema.

Si se te remite a las FAQ's o a la documentación oficial de PHP es por qué ahí tienes ejemplos -probados- que supuestamente (en las condiciones de configuración que ahí se describen) deberían funcionarte .. pero si no dás más detalles sobre tus condiciones de pruebas: código completo de -todo- lo que intervengan en el proceso, si usas tu servidor PC de pruebas o un servicio de hosting (de pago o gratutito) .. que Sistema Operativo usa tu servidor .. (Linux? Windows? ...) .. (aunque algunas cosas del "código" que pones se puedan "deducir" es necesario que las -concretes-). o incluso que versión de PHP usas (por el acceso a variables como $_FILES ...) o configuración de PHP (php.ini: register_globals ...)

En fin . como veras esto no se trata de ir probando códigos y que tu digas "no me funciona" .. sino de que te centres en UNO sólo y ahí lo hagamos funcionar .. sino .. siempre darás vuelta en lo mismo ..

Por eso, y con estos antecedentes te invito a iniciar un nuevo tema con todos los requisitos que aquí te pido.

Un saludo,
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 07:26.