Foros del Web » Programando para Internet » PHP »

Problema con $_FILES

Estas en el tema de Problema con $_FILES en el foro de PHP en Foros del Web. Saludos a todos! Tengo que decir que he buscado en los FAQS, en todos lados, y estoy desesperado... El caso es que tengo un formulario ...
  #1 (permalink)  
Antiguo 12/10/2008, 11:27
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Problema con $_FILES

Saludos a todos!
Tengo que decir que he buscado en los FAQS, en todos lados, y estoy desesperado...
El caso es que tengo un formulario para subir una imagen (y otras cosas) a una BD Mysql, y no se muy bien por qué no recoge las variables $_FILES, ya que ni si quiera las muestra antes de insertarlas en la BD...
Aqui os dejo el código, se agradece ETERNAMENTE cualquier ayuda

Formulario:
Código php:
Ver original
  1. <form enctype="multipart/form-data" action="guardar_archivo.php" method="post">
  2.  <p><strong>Guardar Imagen</strong></p><br><?php echo"<p>Nivel:<br>";
  3.    
  4. include "conexion.php";  
  5. $result=mysql_query("SELECT * FROM grado",$conexion);
  6.  
  7. echo"<SELECT name=\"nivel\">";
  8. while($row=mysql_fetch_row($result)){
  9.  
  10. echo"<OPTION value='"; echo $row[1];echo"'>"; echo $row[1]; echo"</OPTION>"; }
  11. echo"</SELECT>
  12.  <p>Categoria:<br>";  
  13. include "conexion.php";  
  14. $resulta=mysql_query("SELECT * FROM categorias",$conexion);
  15.  
  16. echo"<SELECT name=\"categoria\">";
  17. while($rowa=mysql_fetch_row($resulta)){
  18.  
  19. echo"<OPTION value='"; echo $rowa[2];echo"'>"; echo $rowa[2]; echo"</OPTION>"; }
  20. echo"</SELECT>
  21.  <p>Subcategoria:<br>";  
  22.  include "conexion.php";     
  23. $resultad=mysql_query("SELECT * FROM subcategorias",$conexion);
  24.  
  25. echo"<SELECT name=\"subcategoria\">";
  26. while($rowar=mysql_fetch_row($resultad)){
  27.  
  28. echo"<OPTION value='"; echo $rowar[2];echo"'>"; echo $rowar[2]; echo"</OPTION>"; }
  29. echo"</SELECT>
  30.  <p>Bloque:<br>";
  31.  echo"<SELECT name=\"bloque\">
  32.                                <OPTION value=\"1\">1</OPTION>
  33.                                <OPTION value=\"2\">2</OPTION>
  34.                                 <OPTION value=\"3\">3</OPTION>
  35.                                 <OPTION value=\"4\">4</OPTION>
  36.                                 <OPTION value=\"5\">5</OPTION>
  37.                                 <OPTION value=\"6\">6</OPTION>
  38.                                 <OPTION value=\"7\">7</OPTION>
  39.                                 <OPTION value=\"8\">8</OPTION>
  40.                                 <OPTION value=\"9\">9</OPTION>
  41.                                 <OPTION value=\"10\">10</OPTION>
  42.                              </SELECT>
  43.                               <br><p>Tipo:
  44.  <input type=\"radio\" name=\"tipoim\" value=\"e\"> Enunciado
  45.  <input type=\"radio\" name=\"tipoim\" value=\"s\"> Solucion<br>
  46.  
  47.    
  48.  </p>"; ?>
  49. Descripción: <br /> <input type="text" name="titulo" size="30"> <br />
  50. <input type="hidden" name="MAX_FILE_SIZE" value="10000">
  51.  
  52. Ubicación: <br />   <input type="file" name="archivito"> <br />
  53. Nota: Si se trata de una solucion, ha de tener el mismo nombre <br />
  54. que el enunciado con el prefijo "solucion_" Ej: <br />
  55. <strong>Enunciado</strong>: regresionesbloque1.gif<br />
  56. <strong>Solucion</strong>: solucion_regresionesbloque1.gif<br />
  57. <input type="submit" value="Enviar archivo">
  58. </form>

Y el archivo que muestra / guarda las variables:
Código php:
Ver original
  1. <?php
  2.  $archivo = $_FILES['archivito']['tmp_name'];
  3.  $tamanio = $_FILES['archivito']['size'];
  4.  $tipo = $_FILES['archivito']['type'];
  5.  $nombre = $_FILES['archivito']['name'];
  6.  $titulo = $_POST["titulo"];
  7.  
  8. require("dbconnect.inc.php");
  9.  if ( $archivo != "none" )
  10.  {
  11.  
  12.     $fp = fopen($archivo, "rb");
  13.     $archivo = addslashes($archivo);
  14.     $contenido = fread($fp, $tamanio);
  15.     $contenido = addslashes($contenido);
  16.     fclose($fp);
  17.  
  18.     $qry = "INSERT INTO archivos  (id, nombre, titulo, contenido, tipo, nivel, categoria, subcategoria, bloque, tipoim) VALUES
  19.            (0,'".$nombre."', '".$titulo."', '".$contenido."', '".$tipo."', '".$_POST["nivel"]."', '".$_POST["categoria"]."', '".$_POST["subcategoria"]."', '".$_POST["bloque"]."', '".$_POST["tipoim"]."')";
  20.  
  21.     mysql_query($qry);
  22.  
  23.     if(mysql_affected_rows($conn) > 0) {
  24. echo "nombre: ";
  25. echo $nombre;
  26. echo"<br>";
  27. echo "tamanio: ";echo $tamanio;
  28. echo"<br>";
  29. echo "aqui deberia verse la imagen ";
  30.  header("Content-type: $tipo");
  31.  header("Content-Disposition: ; filename=\"$nombre\"");
  32.  print $archivo;
  33. echo"<br>";
  34. echo "titulo: ";echo $titulo;
  35. echo"<br>";
  36. echo "tipo: ";echo $tipo;
  37. echo"<br>";
  38.        print "Se ha guardado el archivo en la base de datos.
  39.        
  40.        <br>
  41.     <a href='a.htm'>Volver</a>";
  42. }
  43.  
  44.     else
  45.        print "NO se ha podido guardar el archivo en la base de datos.<br>
  46.     <a href='a.htm'>Volver</a>";
  47.  }
  48.  else
  49.     print "No se ha podido subir el archivo al servidor<br>
  50.     <a href='adm.htm'>Volver</a>";
  51.  
  52. ?>

De verdad, si podeis ayudadme os lo agradecería muchiiiiiiiiisimo

Gracias!!!
  #2 (permalink)  
Antiguo 12/10/2008, 11:38
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con $_FILES

Hola algarrobo,

Haz un var_dump($_FILES) y verifica que valor tiene la entrada de $_FILES['archivito']['error'].

Saludos.
  #3 (permalink)  
Antiguo 12/10/2008, 11:49
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con $_FILES

Cita:
Iniciado por GatorV Ver Mensaje
Hola algarrobo,

Haz un var_dump($_FILES) y verifica que valor tiene la entrada de $_FILES['archivito']['error'].

Saludos.
Cómo lo hago? Me estoy dando cuenta que soy un poco ignorante en $_FILES...

Gracias!
  #4 (permalink)  
Antiguo 12/10/2008, 12:48
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con $_FILES

Solamente coloca el var_dump y en pantalla podrás ver el contenido de la variable.

Saludos.
  #5 (permalink)  
Antiguo 12/10/2008, 13:03
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con $_FILES

Cita:
Iniciado por GatorV Ver Mensaje
Solamente coloca el var_dump y en pantalla podrás ver el contenido de la variable.

Saludos.
Esto es lo que me sale, de lo que deduzco que no coge las variables $_FILE, aunque no se hacer muchas mas lecturas... :(

array(1) { ["archivito"]=> array(5) { ["name"]=> string(10) "bgmain.gif" ["type"]=> string(0) "" ["tmp_name"]=> string(0) "" ["error"]=> int(6) ["size"]=> int(0) } }
  #6 (permalink)  
Antiguo 12/10/2008, 14:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con $_FILES

El error 6, es el siguiente:
Código:
 UPLOAD_ERR_NO_TMP_DIR

    Value: 6; Missing a temporary folder. Introduced in PHP 4.3.10 and PHP 5.0.3.
Te falta configurar el valor del directorio temporal en tu php.ini.

Saludos.
  #7 (permalink)  
Antiguo 12/10/2008, 14:18
 
Fecha de Ingreso: octubre-2008
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Problema con $_FILES

Muchas gracias! Voy a configurarlo, y cuento como ha ido
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 15:14.