Foros del Web » Programando para Internet » PHP »

ftp_put

Estas en el tema de ftp_put en el foro de PHP en Foros del Web. Hola a todos, alguien me podria ayudar a subir un archivo en forma ftp desde php, el problema es que yo uno ftp_put pero por ...
  #1 (permalink)  
Antiguo 28/09/2006, 16:22
 
Fecha de Ingreso: septiembre-2006
Mensajes: 6
Antigüedad: 17 años, 7 meses
Puntos: 0
ftp_put

Hola a todos, alguien me podria ayudar a subir un archivo en forma ftp desde php, el problema es que yo uno ftp_put pero por alguna razon nunca los sube no se si el servidor que uso esta mal configurado o algo asi, pero las otras funciontes de ftp como la de conectarse al servidor si sirven y corren perfectamente
GRACIAS!!!
  #2 (permalink)  
Antiguo 28/09/2006, 20:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
No me quedó claro donde tienes el archivo orignen y donde debes dejarlo en destino.

De todas formas, indica el código que has usado a ver si detectamos un error. Ya sea del própio código o de conceptos (como a veces suele pasar que se confunde "FTP" con el hecho de tomar un archivo desde el "cliente" ..)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 29/09/2006, 08:19
 
Fecha de Ingreso: septiembre-2006
Mensajes: 6
Antigüedad: 17 años, 7 meses
Puntos: 0
Gracias por la ayuda.
La pagina la quiero subir al servidor y que la persona que acceda a ella pueda subir archivos al servidor por medio de un formulario, y he buscado codigo pero todos se contradicen. Solo necesito que suba el archivo, de un tamaño pequeño. No se si el servidor que estoy usando esta mal configurado o algo asi pero la funcion ftp_put creo que es la que no funciona, las otras si.

Quisiera poner el codigo, pero tengo muchos, ya que los copie de internet(porque estoy aprendiendo) entonces ninguno me sirve y todos se contradice, alguien podria poner el codigo aqui.
Alguna otra duda o si quieren que ponga el codigo me avisan si ASI me pueden ayudar Gracias!
  #4 (permalink)  
Antiguo 29/09/2006, 08:29
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
La pagina la quiero subir al servidor y que la persona que acceda a ella pueda subir archivos al servidor por medio de un formulario, y he buscado codigo pero todos se contradicen
Yo creo que el tema está muy claro. Lo que pasa que hace falta conocer cierta "base" de ciertos "conceptos" para que lo veas claro.

Todos en principio conocen del protocolo "FTP" por qué así se les inculca para que suban sus archivos al "servidor" .. Pero lo que no sé si tu conoces es que FTP es un "protocolo" y que hay un "servidor" y un "cliente". En el caso más común tu usas tu "cliente FTP" .. lease el que incorpora Dreamweaver, cuteFTP o el que uses. Así haces llegar tu "archivo" a tu servidor desde tu "cliente" (tu PC).

Cuando tu diseñas una página HTML y quieres que por ella sin más "clientes" por médio (pues tu navegador ya es un cliente en sí .. pero del protocolo HTTP) .. ahí el hecho de "subir" el archivo lo haces con el HTML correspondiente y las técnicas que PHP describe. El proceso de "upload" de archivo se hace por HTTP y no po "FTP" . .así que olvidate de esas funciones por qué no corresponden para ese proceso.

Tu todo esto lo tienes claro?

Visto esto .. ahora te falta ver como "PHP" puede gestionar Uploads de archivos por HTTP (y olvidarte del "FTP" para esta instancia). PHP tiene un capítulo entero destinado para tal fin:

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

Ejemplos tienes en las FAQ's y segúro que mucho de los códigos que tienes usan ese método.

Por otro lado .. PHP se puede "comportar" como un "cliente FTP" con sus funciones del grupo ftp_xxx() pero aquí tienes que tener claro quien es el "cliente" y quien el "servidor". PHP (tu servidor) será el "cliente" y te podrás conectar a -otro- servidor por FTP o a si mismo si este tiene instalado un servidor FTP .. Pero, aquí se pierde el sentido del "FTP" si tu subes tus archivos al mismo servidor que ejecuta PHP (para eso sólo se "mueven" los archivos con funciones como move_uploaded_file() una vez que llegó por HTTP desde tu formulario HTML).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 29/09/2006, 08:49
 
Fecha de Ingreso: septiembre-2006
Mensajes: 6
Antigüedad: 17 años, 7 meses
Puntos: 0
Me ayudaste mucho gracias.
Ya lo estoy probando con funciones http, pero ahora me saca el erro que tengo el permiso denegado como configuro el servidor para que pueda recibier el archivo.
Y una ultima pregunta en lo ftp entendi que no se podia usar porque el cliente no lo maneja pero porque entonces si se puede conectar con el servidor usando ftp

MIL GRACIAS!!!

ASI ESTE ES EL NUEVO SCRIPT QUE ESTOY UTILIZANDO
<?php
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
copy($HTTP_POST_FILES['userfile']['tmp_name'], "/willber");
} else {
echo "Possible file upload attack. Filename: " . $HTTP_POST_FILES['userfile']['name'];
}
/* ...or... */
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "/willber");
?>
<html>
<head></head>
<body>
<form enctype="multipart/form-data" action="http.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
</body>
</html>
  #6 (permalink)  
Antiguo 29/09/2006, 08:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Y una ultima pregunta en lo ftp entendi que no se podia usar porque el cliente no lo maneja pero porque entonces si se puede conectar con el servidor usando ftp
Por qué ya te comenté que tu "cliente" es tu script PHP . .el servidor donde corre PHP. Pero el "archivo" que tu pretendes colocar en ese "servidor FTP" no está en tu servidor (o no sé como pretendías hacerte referencia a el) .. está en tu "cliente" .. y eso vía "navegador" no puedes indicar una ruta cualquiera en un PC cualquiera y esperar que lo "suba" . .debes usar el formularioi HTML como ya lo usas ahora y subir el archivo en primera instancia por HTTP, luego si de ahí a tu servidor FTP sea el mismo servidor que usas ahora u otro remoto quieres llevarlo por FTP, Ok, usa las funciones de FTP .. pero en ese caso el archivo ya lo tienes en tu "servidor".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 29/09/2006, 09:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por willber Ver Mensaje
Me ayudaste mucho gracias.
Ya lo estoy probando con funciones http, pero ahora me saca el erro que tengo el permiso denegado como configuro el servidor para que pueda recibier el archivo.
Y una ultima pregunta en lo ftp entendi que no se podia usar porque el cliente no lo maneja pero porque entonces si se puede conectar con el servidor usando ftp

MIL GRACIAS!!!

ASI ESTE ES EL NUEVO SCRIPT QUE ESTOY UTILIZANDO
<?php
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) {
copy($HTTP_POST_FILES['userfile']['tmp_name'], "/willber");
} else {
echo "Possible file upload attack. Filename: " . $HTTP_POST_FILES['userfile']['name'];
}
/* ...or... */
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "/willber");
?>
<html>
<head></head>
<body>
<form enctype="multipart/form-data" action="http.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
</body>
</html>
No uses copy() usa move_uploaded_file() .. tampoco uses $HTTP_xxx .. usa $_FILES

Las funciones de "Copiado" en PHP no asumen el nombre del archivo (esto no es un copy del DOS) tu debes especificar el directorio y nombre que tendrá en destino (sea el mismo que tenía en origen u otro). NO puedes hacer referencia a una ruta tipo "/" .. eso especifica el "root" de tu servidor y eso no puede coincidir con el "document root" de tu sitio asignado en ese servidor.

Código PHP:
<?php 
if (!empty($_FILES['userfile']['tmp_name'])) {
   
move_uploaded_file($_FILES['userfile']['tmp_name'], $_FILES['userfile']['name']."willber/");
}
?> 
<html>
<head></head>
<body>
<form enctype="multipart/form-data" action="http.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
</body>
</html>
Asumo que tienes una estructura tipo:
http.php
willber/ <-- directorio

El directorio (willber) donde caerá el archivo debe tener permisos de escritura (si corresponde).

Para próximas consultas si obtienes un mensaje de error, exponlo textualmente.


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 29/09/2006, 09:06
 
Fecha de Ingreso: septiembre-2006
Mensajes: 6
Antigüedad: 17 años, 7 meses
Puntos: 0
GRACIAS!!!! ya lo logre
Estos foros son excelentes y a las personas que colaboran en ellas muchas gracias.....
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 11:16.