Foros del Web » Programando para Internet » PHP »

problema con subida de imagenes !urgencia!

Estas en el tema de problema con subida de imagenes !urgencia! en el foro de PHP en Foros del Web. buenas tardes foreros. estoy con un grave problema a la hora de subir fotografias a mi red social hecha en php. resulta que puedo subir ...
  #1 (permalink)  
Antiguo 18/12/2011, 09:51
 
Fecha de Ingreso: diciembre-2010
Ubicación: Málaga,Andalucía,España
Mensajes: 12
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta problema con subida de imagenes !urgencia!

buenas tardes foreros. estoy con un grave problema a la hora de subir fotografias a mi red social hecha en php. resulta que puedo subir fotos grandes,pequeñas, etc, pero ahora no me deja subir una fotografia de 3 megas que tengo. y no entiendo el porque, cuando le hago el $_FILE['upload1']['size'], me devuelve 0, es decir, me dice que no tiene tamaño, cuando si tiene nombre ($_FILE['upload1']['name']
alguien sabe a que se debe este mega fail?porque me estoy jugando el modulo por ese error sin controlar. un saludo y mil gracias
este es el formulario para subir hasta 4 fotografias
Código:
<form action="subir.php" method="post" enctype="multipart/form-data"> 
Nombre de la imagen: <input name="foto1" type="text" size="40" maxlength="50" />
<input name="upfile1" id="upfile" type="file"/><br/>

Nombre de la imagen: <input name="foto2" type="text" size="40" maxlength="50" />
<input name="upfile2" id="upfile" type="file"/><br/>

Nombre de la imagen: <input name="foto3" type="text" size="40" maxlength="50" />
<input name="upfile3" id="upfile" type="file"/><br/>

Nombre de la imagen: <input name="foto4" type="text" size="40" maxlength="50" />
<input name="upfile4" id="upfile" type="file"/><br/>
<input name="action" type="hidden" value="4500000" /> 
<input type="submit" value="Enviar fotos" style="margin-bottom:10px;"/>
</form>
y este es el de subida al servidor MySql

Código PHP:
Ver original
  1. <?php
  2.  $lifetime=5000;
  3.  if(!isset($_SESSION['valid_user'])){
  4.     echo "<script> alert('debe loguearse para entrar') </script>";
  5.     echo "<script> location.href='principal.php'</script>";
  6.  }
  7. $num=0;
  8. $max=4500000;// 4.5Mb
  9. //conecto con la base de datos con las credenciales
  10. $conex=mysql_connect("localhost","root","");
  11. mysql_select_db("socialnet",$conex);
  12. $user=$_SESSION['valid_user'];
  13. //busco todas las fotos subidas por el usuario, para contabilizarlas
  14. $sql1=mysql_query("SELECT * FROM fotos where usuario='".$user."'");
  15. $numeroFotos=0;
  16. while ($fotos=mysql_fetch_row($sql1)){
  17.     $numeroFotos++;
  18. }
  19. //el nombre del directorio donde se guardaran las fotografias sera igual al email del usuario, para evitar confusiones y violaciones de clave primaria
  20. $nombreDir=$_SESSION['valid_user'];
  21. //lo pongo a minusculas, para evitar equivocaciones a la hora de buscar en base de datos
  22. $nombreDir=strtr(strtolower($nombreDir), "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÜÚ", "àáâãäåæçèéêëìíîïðñòóôõöøùüú");
  23. $nuevodirectorio="fotos/".$nombreDir;
  24. if (!is_dir($nuevodirectorio)){
  25.     mkdir ($nuevodirectorio);
  26. }
  27. //subida de las 4 fotografias
  28. $uploaddir = $nuevodirectorio."/";
  29. $nombre1=$_POST['foto1'];
  30. //la siguiente linea es la linea que me devuelve 0, pero si meto otra fotografia, no me da 0, me da el tamaño real de la fotografia. el problema
  31. //viene cuando quiero introducir esta fotografia:buena.JPEG, tamaño: 3.03MB, 3739*2713
  32. //la redimension la hago al mostrar la imagen, eso es lo de menos.
  33. $filesize1 = $_FILES['upfile1']['size'];
  34. $filename1 = trim($_FILES['upfile1']['name']);
  35. $filename1 = substr($filename1, -20);  
  36. $filename1 = ereg_replace(" ", "_", $filename1);
  37. $nombre2=$_POST['foto2'];
  38. $filesize2 = $_FILES['upfile2']['size'];
  39. $filename2 = trim($_FILES['upfile2']['name']);
  40. $filename2 = substr($filename2, -20);  
  41. $filename2 = ereg_replace(" ", "_", $filename2);
  42. $nombre3=$_POST['foto3'];
  43. $filesize3 = $_FILES['upfile3']['size'];
  44. $filename3 = trim($_FILES['upfile3']['name']);
  45. $filename3 = substr($filename3, -20);  
  46. $filename3 = ereg_replace(" ", "_", $filename3);
  47. $nombre4=$_POST['foto4'];
  48. $filesize4 = $_FILES['upfile4']['size'];
  49. $filename4 = trim($_FILES['upfile4']['name']);
  50. $filename4 = substr($filename4, -20);  
  51. $filename4 = ereg_replace(" ", "_", $filename4);
  52. //aqui declaro la ruta completa de la fotografia a subir
  53. $foto1=$nombreDir."/".$filename1;
  54. $foto2=$nombreDir."/".$filename2;
  55. $foto3=$nombreDir."/".$filename3;
  56. $foto4=$nombreDir."/".$filename4;
  57. $cantidadSubidas=0;
  58. if($filesize1 < $max){    
  59.     //a partir de aqui ya no continua, ya que el tamaño de la fotografia es 0, no puedo continuar.
  60.     //da igual que quite la condicion filesize1 > 0, me dice error de conexion, tampoco parece tener tmp_name. que es lo que ocurre? (asi con
  61.     //cualquiera de los 4 huecos de subida)
  62.     if($filesize1 > 0){        
  63.         if((ereg(".jpg", $filename1)) || (ereg(".gif", $filename1)) || (ereg(".JPG", $filename1))|| (ereg(".GIF", $filename1))){
  64.             $uploadfile = $uploaddir . $filename1;            
  65.             if (move_uploaded_file($_FILES['upfile1']['tmp_name'], $uploadfile)) {                
  66.                 $numeroFotos++;                
  67.                 mysql_query("INSERT INTO fotos VALUES('".$user."','".$foto1."',".$numeroFotos.",'".$nombre1."','si','no',CURRENT_TIMESTAMP)");
  68.                
  69.                 $cantidadSubidas++;
  70.             } else {
  71.                 echo "<script> alert('error de conexion')</script>";
  72.             }
  73.         } else {
  74.             echo "<script> alert('Sólo se permiten imágenes en formato jpg. y gif., no se ha podido adjuntar.')</script>";
  75.         }
  76.     }
  77. }else {
  78.     echo "<script> alert('La imagen ".$filename1." que ha intentado adjuntar es mayor de 2.5 Mb, si desea cambie el tamaño del archivo y vuelva a intentarlo.')</script>";
  79. }
  80. if($filesize2 < $max){
  81.     if($filesize2 > 0){
  82.         if((ereg(".jpg", $filename2)) || (ereg(".gif", $filename2)) || (ereg(".JPG", $filename2))|| (ereg(".GIF", $filename2))){
  83.             $uploadfile = $uploaddir . $filename2;
  84.             if (move_uploaded_file($_FILES['upfile2']['tmp_name'], $uploadfile)) {
  85.                 $numeroFotos++;                
  86.                 mysql_query("INSERT INTO fotos VALUES('".$user."','".$foto2."',".$numeroFotos.",'".$nombre2."','si','no',CURRENT_TIMESTAMP)");
  87.                 $cantidadSubidas++;
  88.             } else {
  89.                 echo "<script> alert('error de conexion')</script>";
  90.             }
  91.         } else {
  92.         echo "<script> alert('Sólo se permiten imágenes en formato jpg. y gif., no se ha podido adjuntar.')</script>";
  93.         }
  94.     }
  95. }else {
  96.     echo "<script> alert('La imagen ".$filename2." que ha intentado adjuntar es mayor de 2.5 Mb, si desea cambie el tamaño del archivo y vuelva a intentarlo.')</script>";
  97. }
  98. if($filesize3 < $max){
  99.     if($filesize3 > 0){
  100.         if((ereg(".jpg", $filename3)) || (ereg(".gif", $filename3)) || (ereg(".JPG", $filename3))|| (ereg(".GIF", $filename3))){
  101.             $uploadfile = $uploaddir . $filename3;
  102.             if (move_uploaded_file($_FILES['upfile3']['tmp_name'], $uploadfile)) {
  103.                 $numeroFotos++;                
  104.                 mysql_query("INSERT INTO fotos VALUES('".$user."','".$foto3."',".$numeroFotos.",'".$nombre3."','si','no',CURRENT_TIMESTAMP)");
  105.                 $cantidadSubidas++;
  106.              
  107.             } else {
  108.                 echo "<script> alert('error de conexion')</script>";
  109.             }
  110.         } else {
  111.             echo "<script> alert('Sólo se permiten imágenes en formato jpg. y gif., no se ha podido adjuntar.')</script>";
  112.         }
  113.     }
  114. }else {
  115.     echo "<script> alert('La imagen ".$filename3." que ha intentado adjuntar es mayor de 2.5 Mb, si desea cambie el tamaño del archivo y vuelva a intentarlo.')</script>";
  116. }
  117. if($filesize4 < $max){
  118.     if($filesize4 > 0){
  119.         if((ereg(".jpg", $filename4)) || (ereg(".gif", $filename4)) || (ereg(".JPG", $filename4))|| (ereg(".GIF", $filename4))){
  120.             $uploadfile = $uploaddir . $filename4;
  121.             $numeroFotos++;
  122.             if (move_uploaded_file($_FILES['upfile4']['tmp_name'], $uploadfile)) {                
  123.                mysql_query("INSERT INTO fotos VALUES('".$user."','".$foto4."',".$numeroFotos.",'".$nombre4."','si','no',CURRENT_TIMESTAMP)");
  124.                $cantidadSubidas++;
  125.             } else {
  126.                 echo "<script> alert('error de conexion')</script>";
  127.             }
  128.         } else {
  129.             echo "<script> alert('Sólo se permiten imágenes en formato jpg. y gif., no se ha podido adjuntar.')</script>";
  130.         }
  131.     }
  132. }else {
  133.     echo "<script> alert('La imagen ".$filename4." que ha intentado adjuntar es mayor de 2.5 Mb, si desea cambie el tamaño del archivo y vuelva a intentarlo.')</script>";
  134. }
  135. //echo "<script> alert('fotos subidas correctamente: ".$cantidadSubidas."')</script>";
  136. echo "<script> location.href='inicio.php'</script>";
  137. ?>

Última edición por alvar85; 18/12/2011 a las 10:01
  #2 (permalink)  
Antiguo 18/12/2011, 10:03
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: problema con subida de imagenes !urgencia!

Fijate en la configuracion del php, en el php.ini del servidor de aumentar estas 2 variables
max_upload_size
max_post_size


Dependiendo de su valor es lo que te va a dejar subir las imagenes, para subir cosas de 3 megas vas a tener que subirlo a 3M.
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 18/12/2011, 10:24
 
Fecha de Ingreso: diciembre-2010
Ubicación: Málaga,Andalucía,España
Mensajes: 12
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: problema con subida de imagenes !urgencia!

nop, no vale. ademas, aunque me sirviera, el proyecto me lo evaluan en un ordenador en el cual no puedo cambiar eso. estoy mirando en los dos php.ini, y nada, post_max_size tiene 8M Y
lo que cambio de 2 a 5 (upload_max_size) no cambia nada, sigo sin poder subir la fotografia que queria subir antes.
  #4 (permalink)  
Antiguo 18/12/2011, 15:16
 
Fecha de Ingreso: noviembre-2011
Mensajes: 516
Antigüedad: 12 años, 5 meses
Puntos: 10
Respuesta: problema con subida de imagenes !urgencia!

Si las demas fotos las sube eso tiene que ser un problema del php.ini y si dices que esta bien que pone 8M es más que suficiente para sbir una de 4 M que servidor usas es local o host??? el codigo en principio esta bien. espero lo consigas, un saludo.
  #5 (permalink)  
Antiguo 18/12/2011, 22:17
Avatar de elsolodigno  
Fecha de Ingreso: agosto-2009
Mensajes: 225
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: problema con subida de imagenes !urgencia!

Cita:
Iniciado por alvar85 Ver Mensaje
nop, no vale. ademas, aunque me sirviera, el proyecto me lo evaluan en un ordenador en el cual no puedo cambiar eso. estoy mirando en los dos php.ini, y nada, post_max_size tiene 8M Y
lo que cambio de 2 a 5 (upload_max_size) no cambia nada, sigo sin poder subir la fotografia que queria subir antes.
Hola estimado,

- Está así en tú php.ini?:

upload_max_filesize = 8M
post_max_size = 8M

- Probaste con un .htaccess?:

php_value upload_max_filesize 8M
php_value post_max_size 8M

Saludos!

Etiquetas: imagenes, subida, subir-imagen
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 19:18.