Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/12/2011, 09:51
alvar85
 
Fecha de Ingreso: diciembre-2010
Ubicación: Málaga,Andalucía,España
Mensajes: 12
Antigüedad: 14 años
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