Programación Web y Scripting > PHP
Problemas Para Subir Con Ftp
(1/1)
xayide:
Hola a todos!
Necesito subir archivos mediante FTP al servidor en el que está la página web.
Mientras estoy desarrollando la web, subía archivos desde local al servidor y funcionaba estupendamente. Ahora que he colgado la web, intento subir archivos desde la red al servidor, y es aquí donde aparecen mis problemas. Aparentemente sube todo bien, no da errores ni nada por el estilo, pero no sube nada.
Me he dado cuenta de que al hacer <?php echo filetype($archivo); ?> no imprime nada, ni siquiera error, o false o unknown, NADA. Esto es algo muy raro. Es como si no cogiese el archivo de mi ordenador.
Os adjunto el código encargado de subir el archivo.
--- Código: Text ---<?php.....etc.... function subirImagenFTP($nombre_local,$nombre_nuevo,$mini_local,$mini_nuevo){ // Primero creamos un ID de conexión a nuestro servidor $cid = ftp_connect("ftp.midominio.com"); // Luego creamos un login al mismo con nuestro usuario y contraseña $usuario="miusuario"; $password="micontraseña"; $resultado = ftp_login($cid, $usuario, $password);//echo "hecho el login"; // Comprobamos que se creo el Id de conexión y se pudo hacer el login if ((!$cid) || (!$resultado)) { //$salida= "<br> La conexión no se ha podido realizar. Puede deberse a que no está conectado a internet o el servidor al que pretende conectarse no se encuentra operativo </br>"; die("La conexión no se ha podido realizar. Puede deberse a que no está conectado a internet o el servidor al que pretende conectarse no se encuentra operativo"); } else { $salida="<br> Conectado </br>"; echo $salida; } // 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); // 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. ftp_chdir($cid, "/httpdocs/fotos"); $salida="<br> Cambiado al directorio necesario </br>"; $subido1= ftp_put($cid, $nombre_nuevo, $nombre_local, FTP_BINARY);echo "subido1"; $subido2= ftp_put($cid, $mini_nuevo, $mini_local, FTP_BINARY);echo "subido2"; if((!$subido1) || (!$subido2)){ $salida= "<br> No se ha podido subir el archivo </br>"; } else{ $salida= true; } //cerramos la conexión FTP ftp_close($cid); return $salida;} function comprobarImagen($nombre_local,$nombre_nuevo,$mini_local,$mini_nuevo){ $form1= false; $siz1= false; $arch1= false; $form2= false; $siz2= false; $arch2= false; $arch1= $this->nombre_vacio($nombre_local); $arch2= $this->nombre_vacio($mini_local); $nombre_nuevo= $this->nombre_formato($nombre_local,$nombre_nuevo); if($nombre_nuevo!=false){ $form1= true; } else{ $form1= false; } $mini_nuevo= $this->nombre_formato($mini_local,$mini_nuevo); if($mini_nuevo!=false){ $form2= true; } else{ $form2= false; } $siz1= $this->archivo_tam($nombre_local); $siz2= $this->archivo_tam($mini_local); if(($siz1)&&($form1)&&($arch1)&&($siz2)&&($form2)&&($arch2)){ $res=$this->subirImagenFTP($nombre_local,$nombre_nuevo,$mini_local,$mini_nuevo); //res es texto o true $salida= $res; } else{ $salida.= "<br>No se han subido. Solucione los errores</br>"; $salida.="Recuerde que el nombre no debe ser vacio. El formato debe ser jpg, gif o jpeg. El peso debe ser menor a 100KB."; } return $salida;} function nombre_vacio($nombre){ if(empty($nombre)){ $arch= false; } else{ $arch= true; } return arch;} function nombre_formato($nombre, $nombre_nuevo){ $formato1=substr($nombre,-3,3); $formato2=substr($nombre,-4,4); if((strcasecmp($formato1,"jpg")==0)||(strcasecmp($formato1,"gif")==0)){ $salida.="<br> El formato del archivo es valido </br>"; $nombre_nuevo.= "." . $formato1; } else if (strcasecmp($formato2,"jpeg")==0){ $salida.="<br> El formato del archivo es valido </br>"; $nombre_nuevo.= "." . $formato2; } else{ $salida.= "<br> El formato del archivo no es válido. El formato debe de ser: jpg, gif, jpeg </br>"; $nombre_nuevo= false; } return $nombre_nuevo;} function archivo_tam($nombre_local){ if(filesize($nombre_local)<100000){ $siz= true; } else{ $siz= false; } return $siz;} function archivo_tipo($f){ if(filetype($f)=="file"){ return true; } else{ return false; }} } ?>
Haber si alguien me puede ayudar!!
muchas gracias y un saludo!!
LeGatoRojo:
He aqui un ejemplo posteado en el mismo foro con anterioridad
http://foros.solocodigo.com/index.php?showtopic=27159&hl=ftp
Como sugerencia usa el buscador, en muchas ocasiones ya se posteo la solución.
xayide:
Gracias por el link, pero no me ha servido de mucho. La solución que se propone es utilizar archivos temporales, pero mi servidor no permite su uso. Por eso intento subirlo directamente a la carpeta destino.
Mientras estoy desarrollando la web, y ejecutando el local, sí que sube de local al servidor. Pero una vez que cuelgo la página, no se pueden subir los archivos. Es algo muy raro. Además, como desde local funciona bien, ya no sé qué más probar!!
Si alguien tiene alguna idea se lo agradecería!!
muchas gracias y saludos!
Navegación
Ir a la versión completa