Comunidad de diseño web y desarrollo en internet online

Subir archivos con PHP por FTP

Citar            
MensajeEscrito el 02 Jun 2007 03:55 am
Estoy realizando el tutorial de

http://www.cristalab.com/tutoriales/112/subir-archivos-con-php-por-ftp

y me arroja un Error
*****************************************************************************************
Conectado.
Cambio a modo pasivo

Warning: ftp_chdir() [function.ftp-chdir]: Can't change directory to boca: No such file or directory in /home/myusuario/public_html/recibe.php on line 18
Cambiado al directorio necesario
noticias1.jpg

subiendo el archivo...
Excede el tamaño del archivo...
Ruta: www.misitio.cl/boca/noticias1.jpg
*********************************************************************************************

Resulta que no se que pasa

realice un archivo php como lo dice el tutorial y le puse form.php que contiene lo siguiente:

*****************************************************************************************
form.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form name="enviador" method="post" action="recibe.php" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="10000">
Archivo: <input type="file" name="archivo">
<input type="submit">
</body>
</html>
******************************************************************************************************
y un archivo

recibe.php

<?php
// Primero creamos un ID de conexión a nuestro servidor
$cid = ftp_connect("www.misitio.cl");
// Luego creamos un login al mismo con nuestro usuario y contraseña
$resultado = ftp_login($cid, "myusuario","myclave");
// Comprobamos que se creo el Id de conexión y se pudo hacer el login
if ((!$cid) || (!$resultado)) {
echo "Fallo en la conexión"; die;
} else {
echo "Conectado.";
}
// Cambiamos a modo pasivo, esto es importante porque, de esta manera le decimos al
//servidor que seremos nosotros quienes comenzaremos la transmisión de datos.
ftp_pasv ($cid, true) ;
echo "<br> Cambio a modo pasivo<br />";
// Nos cambiamos al directorio, donde queremos subir los archivos, si se van a subir a la raíz
// esta por demás decir que este paso no es necesario. En mi caso uso un directorio llamado boca
ftp_chdir($cid, "boca");
echo "Cambiado al directorio necesario";
// Tomamos el nombre del archivo a transmitir, pero en lugar de usar $_POST, usamos $_FILES que le indica a PHP
// Que estamos transmitiendo un archivo, esto es en realidad un matriz, el segundo argumento de la matriz, indica
// el nombre del archivo
$local = $_FILES["archivo"]["name"];
// Este es el nombre temporal del archivo mientras dura la transmisión
$remoto = $_FILES["archivo"]["tmp_name"];
// El tamaño del archivo
$tama = $_FILES["archivo"]["size"];
echo "<br />$local<br />";
echo "$remoto<br />";
echo "subiendo el archivo...<br />";
// Juntamos la ruta del servidor con el nombre real del archivo
$ruta = "www.misitio.cl/boca/" . $local;
// Verificamos si no hemos excedido el tamaño del archivo
if (!$tama<=$_POST["MAX_FILE_SIZE"]){
echo "Excede el tamaño del archivo...<br />";
} else {
// Verificamos si ya se subio el archivo temporal
if (is_uploaded_file($remoto)){
// copiamos el archivo temporal, del directorio de temporales de nuestro servidor a la ruta que creamos
copy($remoto, $ruta);
}
// Sino se pudo subir el temporal
else {
echo "no se pudo subir el archivo " . $local;
}
}
echo "Ruta: " . $ruta;
//cerramos la conexión FTP
ftp_close($cid);
?>


*************************************************************

Y boca es una carpeta que esta en raiz donde quiero que suban mis archivos, lo otro que estoy subiendo una foto de 13kilos y me dice que el peso se excede...

Ayuda no entiendo mucho php pero creo que son la rutas?

Gracias

Por chaleco

22 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Jun 2007 08:11 pm
No puedes usar FTP para tus clientes con php, el FTP de php, solo es para servidores.



Saludos :wink:

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 14 Jun 2007 01:42 pm
Disculpa...Soy nuevo en este foro.

A que te refieres cunado dices que es solo para servidores?
Yo tengo un Hosting con PHP. Puedo usar este Script para que mis clientes suban sus imagenes a mi hosting?

Gracias por la respuesta.

Por alfonsorivas310

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 14 Jun 2007 01:45 pm
Yo tengo un Hosting con PHP. Puedo usar este Script para que mis clientes suban sus imagenes a mi hosting?


NO

Entre servidores me refiero a esto:
Suponiendo que tu hosting se llama micasita.com y el mio lacasita.com, el ftp de php te sirve unicamente para transferir de micasita.com a lacasita.com

saludos ^^

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 14 Jun 2007 01:59 pm
Gracias por la respuesta.

Podrias por favor ayudarme u orientarme o si tienes un codigo que sirva para subir imagenes a mi Hosting desde una pagina web?
Si es posible puedo pagarte por ese servicio.
Gracias

Por alfonsorivas310

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 14 Jun 2007 02:03 pm
El script de ese tutorial te sirve, el detalle es que no sube los archivos usando FTP, los sube usando HTTP. Toma ese script como base.

^^

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 14 Jun 2007 02:10 pm
Ok. pero el problema es que soy neofito en esto, ni siquiera entiendo PHP.

Me gustaria tener un Script ya hecho. Como un pequeño formulario (como el que pones arriba), donde el cliente pueda subir sus imagenes desde sus archivos usando mi pagina web.

Si puedes ayudarme y me dices cuanto es podria yo enviarte a cualquier pais que acepte paypal

Por alfonsorivas310

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 14 Jun 2007 02:57 pm
Yo creo que tu respuesta es un NO.
Gracias de todas formas.
Encontre un Script ya hecho que "sube" imagenes al servidor, pero ahora el problema es que no me funciona, quiza debos cambiar algo, o crear un directorio especial ???

ES ESTE:

<form ENCTYPE="multipart/form-data" method="post" name="subir" action="http://www.midominio.com/index.php?seccion=uploads" target="_blank">
<INPUT NAME="attached" TYPE="file" size="10" style="color: #000000; border: 1px solid #000000; font-size:8pt; font-family:Verdana">
<br>
<input type="submit" name="submit" value="SUBIR FOTO" style="color: #000000; font-family: Verdana; font-size: 7pt; font-weight: bold; border: 1px solid #000000; background-color: #C0C0C0">
</form>

Quiza alguien pueda orientarme: creo que se debe cambiar algo aqui:="http://www.midominio.com/index.php?
Yo necesito que los usuarios suban imagenes a: www.midominio.com/public_html/images

GRACIAS

Por alfonsorivas310

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 14 Jun 2007 03:19 pm
Asigna a la carpeta donde quieres subir los archivos, permisos de escritura.

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 14 Jun 2007 03:21 pm
Ok.
Entonces, asignando los permisos, puedo subir por ejemplo a:

www.midominio.com/public_html/imagenes

Te agradezco mucho la ayuda.

Por alfonsorivas310

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 14 Jun 2007 03:25 pm
Entonces seria asi:

<form ENCTYPE="multipart/form-data" method="post" name="subir" action="http://www.midominio.com/public_html/imagenes?seccion=uploads" target="_blank">
<INPUT NAME="attached" TYPE="file" size="10" style="color: #000000; border: 1px solid #000000; font-size:8pt; font-family:Verdana">
<br>
<input type="submit" name="submit" value="SUBIR FOTO" style="color: #000000; font-family: Verdana; font-size: 7pt; font-weight: bold; border: 1px solid #000000; background-color: #C0C0C0">
</form>

ESO ESTA BIEN???
Por favor, orientame sobre esto: tiene que ver algo esto? ="http://www.midominio.com/public_html/imagenes?seccion=uploads" target="_blank"> ( la parte donde dice seccion=uploads)
Se debe cambiar el signo de interrogacion aqui??? imagenes?

GRACIAS

Por alfonsorivas310

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 25 Jun 2007 11:09 pm

Dano escribió:

Yo tengo un Hosting con PHP. Puedo usar este Script para que mis clientes suban sus imagenes a mi hosting?


NO

Entre servidores me refiero a esto:
Suponiendo que tu hosting se llama micasita.com y el mio lacasita.com, el ftp de php te sirve unicamente para transferir de micasita.com a lacasita.com

saludos ^^


Hola Dano:
como que el ftp de php solo te sirve para mandar archivos entre servidores???, si acabo de subir un archivo desde mi compu (que por cierto no es un servidor) a mi servidor web.

Mira te dejo el codigo que estoy usando, ok?

Código :

<?php
$servidor_ftp = "miservidor.com.mx";
$id_con = ftp_connect($servidor_ftp) or die("No ha sido posible conectarse a $servidor_ftp<br />");
$usuario_ftp = "mi_usuario";
$pass_ftp = "mi_pass";
if (ftp_login($id_con, $usuario_ftp, $pass_ftp)) {
    echo "Conectado como $usuario_ftp@$servidor_ftp<br />";
} else {
    echo "No ha sido posible conectarse como $usuario_ftp<br />";
    exit;
}
$destino = "carpeta/en/el/servidor/nombre_nuevo_de_archivo.txt";
$origen = "C:/Carpeta/en/tu/compu/archivo_local.txt";
if(ftp_put($id_con, $destino, $origen, FTP_BINARY)){
   echo "Archivo subido<br />";
}else{
   echo "No subio<br />";
}
ftp_close($id_con);
?>


Saludos!!! ^^

Por master_of_puppetz

Claber

2483 de clabLevel

7 tutoriales
3 articulos

Genero:Masculino   Premio_Secretos

WebDev (Flex + PHP + JS)

firefox
Citar            
MensajeEscrito el 25 Jun 2007 11:14 pm

Código :

$origen = "C:/Carpeta/en/tu/compu/archivo_local.txt";


Esa ruta esta en el servidor, en este caso el servidor es tu pc de desarrollo. Por eso te funciona.

Como ya dije antes, solo funciona entre servidores. :wink:

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 04 Jul 2007 08:10 am
Hola buenas ,yo soy nuevo en este foro, quisiera saber que cantidad de datos se puede llegar a subir de una sola vez(un archivo) con el metodo HTTP.
Tengo un cliente que desea subir archivos de sonido que seran bastante mas pesados y es para descartar la idea de un formulario...tengo el formulario echo y funciona con archivos pequeños pero si hay algun modo de que suba archivos de mas peso porfavor decidmelo .gracias..

Por mad

6 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 04 Jul 2007 01:59 pm
En el archivo php.ini, incrementa el valor de estas variables de configuración:
post_max_size
upload_max_filesize

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 04 Jul 2007 03:20 pm
El servidor no es de la empresa ,nosotros solo nos dedicamos a realizarle al cliente la web.asi que los archivos del servidor no creo que pueda retocarlos.Entonces ya no puedo hacer nada mas no?

pues a subirlo con ftp como toa la vida...

si existe alguna alternativa me la podriais decir eh..gracias

Por mad

6 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 04 Jul 2007 03:31 pm
si existe alguna alternativa me la podriais decir eh..gracias


http://www.php.net/ini_set

.htaccess

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 06 Jul 2007 08:59 am
He intentado cambiar el valor de estas variables en la pagina del formulario y en el script de subida...he cambiado el valor de

echo ini_set("memory_limit","110");
echo ini_set("post_max_size","105");
echo ini_set("upload_max_filesize","100");

se supone que si cambian el valor, devuelben el valor anterior pero solo me devueben NULL, Estoy provandolo en un wamp que me e puesto para hacer mis pruebas antes de subirlo al servidor pero no hay manera...si esta mal lo del echo decidmelo yo lo e puesto asi porque queria que me notificara el resultado para ver si funcionaba.Vuelvo a decir que el servidor al que lo e de subir no es mio,quisiera saber si se puede hacer esto de cambiar los valores o legalmente no....no quisiera tener problemas...yo siempre digo que mas vale prevenir que curar x eso os preguntare asta la saciedad jajaja...gracias por la ayuda

Por mad

6 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 17 Nov 2007 10:01 pm
Hola.

Aunque tarde, respondo a la duda del mensaje anterior (me he topado con este hilo desde Google). Si hago mal en responder a temas algo antiguos ya, pido perdón de antemano.

Tal y como se puede leer aquí: http://es.php.net/manual/en/ini.php, las directivas upload_max_filesize y post_max_size, son del tipo PHP_INI_PERDIR a partir de la versión 4.2.3 de PHP, lo que quiere decir que la entrada puede definirse en php.ini, .htaccess o httpd.conf, pero NO en tiempo de ejecución como tu estás intentando hacer. En cambio, memory_limit si que debería poder cambiarse en tiempo de ejecución sin problemas.

Por tanto tienes varias opciones, como cambiarlas en el php.ini si puedes hacerlo, o en el httpd.conf (si usas apache) y en última instancia, en el .htaccess que te permitiría establecer esas directivas de forma personalizada por directorios.

Espero que te sirva de ayuda.

Saludos.

Por javierav

22 de clabLevel



Genero:Masculino  

Córdoba (España)

firefox
Citar            
MensajeEscrito el 07 Abr 2008 04:34 pm
hola com estan bueno la verdad todo me va bien puedo elegir el archivo todo perfecto pero simpre me dice que el tamaño excede todo el tiempo no puedo subir ni un txt ? no entiendo por que donde tocaria todo lo del tamaño, para subir archivos hasta de 300 mb porfavor lo necesito urgente gracias por su ayuda

Por infolinuxar

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Dic 2009 08:47 pm

viccowface escribió:

mmmmm...!!! :roll: no es cierto... igual este código te sirve para subir imagenes en lacasita.com... el ftp de php también te sirve para eso... deberías revisar si el CHMOD de tu carpeta está en 7777


Estas chavo, chavo...

El ftp de php lo repito por millonésima vez lo diré, solo sirve entre servidores.

Si ese script guarda el archivo y funciona con funciones FTP es porque pasa lo siguiente:

Envias el archivo POR HTTP y ya que lo recibe el servir, de forma completamente inecesario e inútil, te conectas al server por ftp, agarras el archivo temporal que YA ESTA EN EL SERVIDOR y utilizar el FTP para cambiarlo de carpeta, nada mas.

Pero bueno, me rindo, tienes razón, el archivo si se sube por FTP. :cry:

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 10 Jun 2010 10:34 pm
hola yo hice mi pagina con web page maker y necesito agregarle un formulario donde los visitantes puedan subir una foto y un comentario con direccion de mail, tel y dereccion...y q esta se emvianda a mi correo, o sea q desde mi pagina la suban pero q no se suba a mi pagina si no q se envie a mi correo..noc si me explico...bueno graciasss
[email protected]

Por luisalexius

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 Jun 2010 04:57 am
para hacer lo que necesitas primero deberas tener una conexion al servidor ftp esto te ayudara con eso

http://www.codigolandia.com/art-Crear+Carpetas+con+PHP+y+FTP-php-119.tc

y luego utilizar una funcion ftp que se llama asi

http://co.php.net/manual/en/function.ftp-fput.php

espero que te sirva de algo

Por talcual

686 de clabLevel



 

Colombia

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.