Ver Mensaje Individual
  #8 (permalink)  
Antiguo 13/11/2014, 20:01
mikehove
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años, 10 meses
Puntos: 2
Respuesta: Por favor necesito guía para resolver problema con move_uploaded_file() en

Pateketrueke te comento que tardé porque mejoré el código pero tampoco no carga la imagen. También me contacté con el hosting y modifiqué la carpeta "imagenes" con el permiso "777", no lanza ningún error, ningún aviso.

Este es el código:

cargar-usuario.php:
Código PHP:
Ver original
  1. <form action="recibir-cargar-usuario.php" method="post" enctype="multipart/form-data">
  2.  
  3. <input type="file" name="imagen" id="imagen" />
  4.  
  5. <input type="submit" name="enviar" value="Enviar" />
  6.  
  7. </form>

recibir-cargar-usuario.php:
Código PHP:
Ver original
  1. /* Extensiones de archivo permitidas */
  2. $ext_permitidas = array("jpg","jpeg","gif","png","bmp");
  3.  
  4. /* MIME Types permitidos */
  5. $mime_permitidas = array("image/jpeg","image/gif","image/bmp","image/bmp");
  6.  
  7. /* Directorio donde se almacenaran los archivos subidos */
  8. /* En el ejemplo se creo una carpeta llamada files dentro de la carpeta donde esta el script */
  9. $directorio = $_SERVER['DOCUMENT_ROOT'].'/contenido/usuarios/imagenes/';
  10.  
  11. /* Tamaño maximo que se aceptara (5mb) */
  12. $max_tamano = 5*(1024*1024);
  13.  
  14. /* Sobreescribir el archivo si existe, si se deja en false genera un nombre nuevo */
  15. $sobreescribir = false;
  16.  
  17. /* Comprueba si se recibio un archivo */
  18. if (isset($_FILES["imagen"]["name"])) {
  19.  
  20.     /* Variables principales del archivo subido contenidas en el array $_FILE */
  21.     $file_name = $_FILES["imagen"]["name"];
  22.     $file_temp = $_FILES["imagen"]["tmp_name"];
  23.     $file_size = $_FILES["imagen"]["size"];
  24.     $file_type = $_FILES["imagen"]["type"];
  25.     $error = $_FILES["imagen"]["error"];
  26.    
  27.  
  28.     /* Comprobacion de los errores automaticos (generados) */
  29.     /* Si $error es cero significa que no hay ningun error */
  30.     if ($error) {
  31.         switch ($error) {
  32.             case 1: die("ERROR: El tamaño es mayor al definido por la configuracion de PHP."); break;
  33.             case 2: die("ERROR: El tamaño es mayor al definido en el formulario HTML."); break;
  34.             case 3: die("ERROR: El archivo solo fue parcialmente subido."); break;
  35.             case 4: die("ERROR: Ningun archivo fue subido."); break;
  36.             case 6: die("ERROR: No existe un directorio para archivos temporales."); break;
  37.             case 7: die("ERROR: Fallo la escritura en disco del archivo."); break;
  38.             case 8: die("ERROR: Alguna extension de PHP interrumpio la subida del archivo.");
  39.         }
  40.     }
  41.  
  42.  
  43.   /* Comprueba si el tamaño del archivo no supera el tamaño maximo definido */
  44.     if ($file_size>$max_tamano) {
  45.         die("ERROR: Tamaño maximo superado.");
  46.     }
  47.    
  48.         /* Obtiene la extension del archivo */
  49.     if (!(strpos($file_name,".")===false)) {
  50.         $file_ext = strtolower(end(explode(".",$file_name)));
  51.     }
  52.  
  53.     /* Comprueba si la extension del archivo esta permitida */
  54.     if (isset($file_ext)) {
  55.         if (!in_array($file_ext,$ext_permitidas)) {
  56.             die("ERROR: El Formato del archivo no esta permitido.");
  57.         }
  58.     }
  59.    
  60.  
  61. /* Comprueba el mime-type sacado por PHP (lado del servidor: seguro) */
  62.  
  63.     $file_mime_type = reset(explode(";",finfo_file(finfo_open(FILEINFO_MIME),$file_temp)));
  64.     if (!in_array($file_mime_type,$mime_permitidas)) {
  65.         die("ERROR: El Formato del archivo no esta permitido.");
  66.     }
  67.    
  68.         /* Comprueba si el archivo existe en la ubicacion donde lo vamos a copiar */
  69.     if (file_exists($directorio.$file_name)) {
  70.  
  71.         /* Si la variable $sobreescribir es false, se le cambia el nombre al archivo */
  72.         /* En caso contrario, simplemente se deja que se sobreescriba */
  73.         if (!$sobreescribir) {
  74.             $i = 1;
  75.             while ($i) {
  76.                 if (!file_exists($directorio.$i."_".$file_name)) {
  77.                     $file_name = $i."_".$file_name;
  78.                     $i = 0;
  79.                 } else {
  80.                     $i++;
  81.                 }
  82.             }
  83.         }
  84.  
  85.     }
  86.       /* Mueve el archivo de su ruta temporal a la que nosotros le queramos asignar */
  87.     if (move_uploaded_file($file_temp,$directorio.$file_name)) {
  88.         echo "El archivo se subio exitosamente al servidor.";
  89.     } else {
  90.         echo "ERROR: El archivo no se logro subir con exito.";
  91.     }
  92.  
  93.  
  94.  
  95. }

Uff, ya no se por dónde ir . Tantas vueltas y código que me mareó