Comunidad de diseño web y desarrollo en internet online

Problemas para mover un archivo al directorio con PHP

Citar            
MensajeEscrito el 29 Ene 2012 05:15 am
Hola amigos

Estos teniendo problemas para cargar una imagen(test.jpg) desde mi sitio web, no se que se deba el problema, les explico.

subir un archivo de prueba para verificar que no sea el codigo original de pagina, lo confuso que si este mismo script lo corro local me funciona perfectamente.

Este es el archivo para cargar, lo llame cargar.html

Código HTML :

<form name="enviador" method="post" action="subirphp.php" enctype="multipart/form-data">

<input type="hidden" name="MAX_FILE_SIZE" value="5000">

Archivo: <input type="file" name="archivo">

<input type="submit" value="cargar">
</form>


Este es el que o sube

Código PHP :

<?php

   // Primero creamos un ID de conexión a nuestro servidor

   $cid = ftp_connect("www.test.com");

   // Luego creamos un login al mismo con nuestro usuario y contraseña

   $resultado = ftp_login($cid, "root","contra");

   // 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, "files");

   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 = "files/" . $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);
?>


En el servidor remoto, al correr el script me marca todo correctamente sin errores.

Conectado.
Cambio a modo pasivo
Cambiado al directorio necesario
test.jpg

subiendo el archivo...
Excede el tamaño del archivo...
Ruta: files/test.jpg

Pero este no copia el archivo al directorio si entro al mismo veo que no esta dentro. Vean esta imagen


A que se debera que no mueve el archivo al directorio y ver si no esta activado el archivo temporal o algo , ojala pudieran ayudarme.

Saludos
:cool:

Por kakashi2000

Claber

559 de clabLevel

5 tutoriales

Genero:Masculino  

Desarrollador de aplicaciones Web

chrome
Citar            
MensajeEscrito el 29 Ene 2012 05:34 am
Uno de los mensajes que nos estás mostrando dice que el archivo excedió el tamaño permitido. Ese es el problema.

De todos modos en el código PHP se abre una conexión FTP que es irrelevante si el archivo se transfiere por HTTP.

De hecho, el input MAX_FILE_SIZE es un invento también innecesario porque PHP tiene su propio límite establecido en el php.ini.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 29 Ene 2012 07:07 pm
Que tal DriverOp

Ese mensaje ya lo he modificado y a un asi no mueve la imagen siento que el script PHP

Código PHP :

is_uploaded_file


Que en teoria carga el archivo al servidor temporal y despues lo mueves con el script PHP

Código PHP :

move_uploaded_file


Como puedo verificar si no hace falta algo en php.ini o que este bien configurado.

Gracias

Por kakashi2000

Claber

559 de clabLevel

5 tutoriales

Genero:Masculino  

Desarrollador de aplicaciones Web

chrome
Citar            
MensajeEscrito el 29 Ene 2012 07:21 pm
Pude revisar la información de PHP y veo que si esta habilitado para manejar imágenes vean.



Bien probé otro código diferente, el anterior código mostrado era para visualizar si no hay algún problema y para poder descartar que sea un error de permisos para FTP por eso lo hice, pero este es originalmente esta en el proyecto.

Código PHP :

//se encarga de subir el archivo de la imagen a la carpeta FILES en el servidor 
       //Guardar imagen
   if(is_uploaded_file($_FILES['anexo1']['tmp_name'])) { // verifica haya sido cargado el archivo
   
      $ruta1= "files/".$_FILES['anexo1']['name'];
      
      move_uploaded_file($_FILES['anexo1']['tmp_name'], $ruta1);
      
      echo("Se subio correctamente las imagenes ");
      }


a un asi no funciona :crap:

Que podra hacer amigos :nif:

Saludos

Por kakashi2000

Claber

559 de clabLevel

5 tutoriales

Genero:Masculino  

Desarrollador de aplicaciones Web

chrome
Citar            
MensajeEscrito el 29 Ene 2012 09:09 pm
estas usando el formualrio que posteaste??

Código :

<form name="enviador" method="post" action="subirphp.php" enctype="multipart/form-data">

<input type="hidden" name="MAX_FILE_SIZE" value="5000">

Archivo: <input type="file" name="archivo">

<input type="submit" value="cargar">
</form>

por que de ser asi esto deberia cambiar

Código PHP :

//se encarga de subir el archivo de la imagen a la carpeta FILES en el servidor 
       //Guardar imagen
   if(is_uploaded_file($_FILES['anexo1']['tmp_name'])) { // verifica haya sido cargado el archivo
   
      $ruta1= "files/".$_FILES['anexo1']['name'];
      
      move_uploaded_file($_FILES['anexo1']['tmp_name'], $ruta1);
      
      echo("Se subio correctamente las imagenes ");
      }

a

Código PHP :

//se encarga de subir el archivo de la imagen a la carpeta FILES en el servidor 
       //Guardar imagen
   if(is_uploaded_file($_FILES['archivo']['tmp_name'])) { // verifica haya sido cargado el archivo
   
      $ruta1= "files/".$_FILES['archivo']['name'];
      
      move_uploaded_file($_FILES['archivo']['tmp_name'], $ruta1);
      
      echo("Se subio correctamente las imagenes ");
      }

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Ene 2012 10:19 pm
Hola tuadmin

Perdón el form es otro, pero de igual forma lo probé cambiándole la variable y a un así no funciona no me marca error, pero cuando entro la pagina no se ve la imagen, por que no están en directorio especificado.

Gracias

Por kakashi2000

Claber

559 de clabLevel

5 tutoriales

Genero:Masculino  

Desarrollador de aplicaciones Web

chrome

 

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