Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Warning: ftp_put(): Could not create file

Estas en el tema de Warning: ftp_put(): Could not create file en el foro de PHP en Foros del Web. Hola gente, espero que me puedan echar una mano con el siguiente código ya que me esta dando un error... Warning: ftp_put(): Could not create ...
  #1 (permalink)  
Antiguo 20/03/2015, 11:57
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Warning: ftp_put(): Could not create file

Hola gente, espero que me puedan echar una mano con el siguiente código ya que me esta dando un error... Warning: ftp_put(): Could not create file

Tengo un servidor web, donde mediante el formulario subo las imagenes, ahora tengo otro servidor mas y quiero que cualquier imagen que suba, se suba al otro servidor. para no alojar las imágenes en el propio servidor.

Código PHP:
Ver original
  1. // Verificamos las imagenes
  2.     $file = $_FILES["img"]["name"];
  3.     $f_ruta = $_FILES["img"]["tmp_name"];
  4.     $sep=explode('image/',$_FILES["img"]["type"]); // Separamos image/
  5.     $tipo=$sep[1]; // Optenemos el tipo de imagen que es
  6.     //
  7.     if($tipo == "gif"){ // Si el tipo de imagen a subir es el mismo de los permitidos, segimos. Puedes agregar mas tipos de imagen
  8.     $check = getimagesize($_FILES["img"]["tmp_name"]);
  9.         if($check !== false) { // Es una imagen.
  10.             // set up basic connection
  11.             $conn_id = ftp_connect($ftp_server);
  12.             // login with username and password
  13.             $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  14.             // activar modo pasivo
  15.             ftp_pasv($conn_id, true);
  16.             if ((!$conn_id) || (!$login_result)) {
  17.                 die("La conexión FTP ha fallado!");
  18.             }
  19.             $ruta = "c_images/album1584/";
  20.             // cargar un archivo
  21.             if (ftp_put($conn_id, $ruta, $f_ruta, FTP_ASCII)) {
  22.                 echo "se ha cargado $file con éxito\n";
  23.             } else {
  24.                 echo "Hubo un problema al cargar $file\n";
  25.             }
  26.             // cerrar la conexión ftp
  27.             ftp_close($conn_id);   
  28.         } else {
  29.             echo "No es una imagen";
  30.         }
  31.     } else {
  32.         echo "Solo aceptamos GIF";
  33.     }
  #2 (permalink)  
Antiguo 20/03/2015, 12:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Warning: ftp_put(): Could not create file

¿Al menos podrías mostrar el mensaje de error completo?

Cuesta trabajo de adivinar una posible causa con tan poca información.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 20/03/2015, 12:05
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Warning: ftp_put(): Could not create file

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Al menos podrías mostrar el mensaje de error completo?

Cuesta trabajo de adivinar una posible causa con tan poca información.
Lo estoy primero haciendo desde local, para luego pasarlo al servidor.

Warning: ftp_put(): Could not create file. in C:\xampp\htdocs\subir.php on line 31
Hubo un problema al cargar NL303.gif
  #4 (permalink)  
Antiguo 20/03/2015, 12:06
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Warning: ftp_put(): Could not create file

Puede ser una cuestión de permisos o de rutas, verifica con un cliente de ftp que puedes acceder a la ruta que especificas en tu script y que puedas escribir en ella.
Por cierto prueba flysystem te facilita mucho lo que estas queriendo hacer.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 20/03/2015, 12:13
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Warning: ftp_put(): Could not create file

Cita:
Iniciado por hhs Ver Mensaje
Puede ser una cuestión de permisos o de rutas, verifica con un cliente de ftp que puedes acceder a la ruta que especificas en tu script y que puedas escribir en ella.
Por cierto prueba[URL="http://flysystem.thephpleague.com/"] flysystem[/URL] te facilita mucho lo que estas queriendo hacer.
Permisos no creo le di el 777 pensado que podría ser eso.

también hice esto
ftp_chdir($conn_id, "c_images/album1584/");

pero no dio resultado.
  #6 (permalink)  
Antiguo 20/03/2015, 12:15
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Warning: ftp_put(): Could not create file

Ya probaste con un cliente de ftp que puedes hacer lo mismo que hace el script ?
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #7 (permalink)  
Antiguo 20/03/2015, 12:24
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Warning: ftp_put(): Could not create file

Cita:
Iniciado por hhs Ver Mensaje
Ya probaste con un cliente de ftp que puedes hacer lo mismo que hace el script ?
Asi es, con el mismo usuario que puse en la configuración del ftp. y sin ningún problema.

también eh intentado poniendo la ruta ftp://37.59.100.XX/c_images/album1584/

pero con error

Warning: ftp_put(ftp://37.59.100.XX/c_images/album1584/): failed to open stream: operation failed in

PD: también eh cambiado la ruta por una absoluta: /usr/share/nginx/html/c_images/album1584/

pero nada el mismo error....

Última edición por Jose789; 20/03/2015 a las 12:42
  #8 (permalink)  
Antiguo 20/03/2015, 12:53
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Warning: ftp_put(): Could not create file

Cita:
Iniciado por Jose789 Ver Mensaje
también eh intentado poniendo la ruta ftp://37.59.100.XX/c_images/album1584/

pero con error

Warning: ftp_put(ftp://37.59.100.XX/c_images/album1584/): failed to open stream: operation failed in

.
Cuando te veas haciendo cosas como esta es la hora de descansar un rato, ya que comienzas a hacer cosas por desesperación.

Revisando tu código encontré esta parte:
Código PHP:
Ver original
  1. $ruta = "c_images/album1584/";
  2.             // cargar un archivo
  3.             if (ftp_put($conn_id, $ruta, $f_ruta, FTP_ASCII)) {
  4.                 echo "se ha cargado $file con éxito\n";
  5.             } else {
  6.                 echo "Hubo un problema al cargar $file\n";
  7.             }
$ruta debe de contener el directorio y el nombre con el cual se va a crear el archivo. Tu solo estas pasando la ruta, de esa forma nunca va a crearlo.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #9 (permalink)  
Antiguo 20/03/2015, 13:24
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Warning: ftp_put(): Could not create file

Cita:
Iniciado por hhs Ver Mensaje
Cuando te veas haciendo cosas como esta es la hora de descansar un rato, ya que comienzas a hacer cosas por desesperación.

Revisando tu código encontré esta parte:
Código PHP:
Ver original
  1. $ruta = "c_images/album1584/";
  2.             // cargar un archivo
  3.             if (ftp_put($conn_id, $ruta, $f_ruta, FTP_ASCII)) {
  4.                 echo "se ha cargado $file con éxito\n";
  5.             } else {
  6.                 echo "Hubo un problema al cargar $file\n";
  7.             }
$ruta debe de contener el directorio y el nombre con el cual se va a crear el archivo. Tu solo estas pasando la ruta, de esa forma nunca va a crearlo.
Entonces en $ruta meto el directorio mas el nombre del archivo.

Voy a probar ahora te comento.

Pues si tenias razón.

Código PHP:
Ver original
  1. $ruta = "c_images/album1584/".$file;
  2.  
  3. if (ftp_put($conn_id, $ruta, $f_ruta, FTP_BINARY))

Funciona de lujo, y una ultima cosa si se sube una imagen con el mismo nombre, sobrescribirá la imagen o daría algún tipo de error.

Última edición por Jose789; 20/03/2015 a las 13:31
  #10 (permalink)  
Antiguo 20/03/2015, 14:05
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Warning: ftp_put(): Could not create file

Sobre escribe el archivo, así que tienes que validar eso antes.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.

Etiquetas: create, file, warning
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 14:03.