Ver Mensaje Individual
  #6 (permalink)  
Antiguo 28/08/2011, 18:49
Avatar de C2am
C2am
 
Fecha de Ingreso: enero-2009
Ubicación: Rosario, Argentina
Mensajes: 2.005
Antigüedad: 15 años, 3 meses
Puntos: 306
Respuesta: Error al subir imagen

Hola, este es el script que uso y que funciona:
en mi form el campo input file se llama "file", el tuyo será imgUser

Código PHP:
Ver original
  1. <?
  2. // ----- script para subir la imagen ---   
  3.     if($_POST){
  4. // Creamos la cadena aletoria -- la modifique para poder utilizar el nombre + aleatorio
  5. $nom=explode(".",$_FILES [ 'file' ][ 'name' ]); //para usar nombre de la imagen
  6.  
  7. $nom2 = $nom[count($nom)-2]; //obtengo solo el nombre sin extension
  8. //$str = "1234567890";
  9. $sub = $idnoti; //idnoti es el id de la novedad
  10. $cad = $nom2."_".$sub;
  11.  
  12. /*for($i=0;$i<3;$i++) {
  13. $cad .= substr($str,rand(0,9),1);
  14. } */
  15. // Fin de la creacion de la cadena aletoria
  16.  
  17. $tamano = $_FILES [ 'file' ][ 'size' ]; // Leemos el tamaño del fichero
  18. $tamaño_max="300000"; // Tamaño maximo permitido
  19. if( $tamano < $tamaño_max){ // Comprobamos el tamaño  
  20. //$destino = '../imagennovedad' ; // Carpeta donde se guardara
  21. $sep=explode('image/',$_FILES['file']['type']); // Separamos image/
  22. $tipo=$sep[1]; // Optenemos el tipo de imagen que es
  23.  
  24. if($tipo == "pjpeg"){$tipo = "jpeg";}
  25. if($tipo == "x-png"){$tipo = "png";}
  26. if($tipo == "gif" || $tipo == "jpeg"|| $tipo == "png"){ // Si el tipo de imagen a subir es el mismo de los permitidos, seguimos. Puedes agregar mas tipos de imagen
  27. move_uploaded_file ( $_FILES ['file']['tmp_name'],$destino . '/' .$cad.'.'.$tipo);  // Subimos el archivo
  28.  
  29.  
  30. // creo la mini a tamaño de 175 ancho o menos si es más chica la img original
  31. include('imgchiqui.php');
  32. $imagenm= $destino . '/' .$cad.'.'.$tipo;
  33. // obtengo el ancho para definir si se achica o no
  34. $dim=getimagesize($imagenm);
  35. // $dim[0] ancho - $dim[1] altura
  36.  
  37. if ($dim[0] >= 175){thumb1($imagenm, 175, $tipo);}
  38. else{thumb1($imagenm, $dim[0], $tipo);}
  39.            
  40.  
  41.  
  42. }
  43. else echo "el tipo de archivo no es de los permitidos";// Si no es el tipo permitido lo decimos
  44. }
  45. else echo "El archivo supera el peso permitido.";// Si supera el tamaño de permitido lo decimos
  46. }
  47.  
  48.  
  49.  
  50. ?>

E imgchiqui.php es:
Código PHP:
Ver original
  1. function thumb1($imagen,$ancho,$tipo) {
  2.      // Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen "grande".
  3.      $dir_thumb = "minis/";
  4.      // Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera "imagen1.jpg",
  5.      // el thumbnail se llamaría "tn_imagen1.jpg"
  6.      $prefijo_thumb = "m_";
  7.  
  8.      // Aquí tendremos el nombre de la imagen.
  9.      $nombre=basename($imagen);
  10.      // Aquí la ruta especificada para buscar la imagen.
  11.      $camino=dirname($imagen)."/";
  12.  
  13.      // Intentamos crear el directorio de thumbnails, si no existiera previamente.
  14.      if (!file_exists($camino.$dir_thumb))
  15.           @mkdir ($camino.$dir_thumb, 0777) or die("No se ha podido crear el directorio ".$camino.$dir_thumb);
  16.  
  17.      // Aquí comprobamos que la imagen que queremos crear no exista previamente
  18.      if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$nombre)) {
  19.        
  20.         // echo $camino.$dir_thumb.$prefijo_thumb.$nombre." NO existía<br>\n";
  21.          
  22.          // si es jpeg o jpg
  23.           if($tipo == "jpg" || $tipo == "jpeg"){
  24.          
  25.           $img = @imagecreatefromjpeg($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");
  26.        
  27.           // miramos el tamaño de la imagen original...
  28.           $datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n");
  29.  
  30.           // intentamos escalar la imagen original a la medida que nos interesa
  31.           $ratio = ($datos[0] / $ancho);
  32.           $altura = round($datos[1] / $ratio);
  33.  
  34.           // esta será la nueva imagen reescalada
  35.           $thumb = imagecreatetruecolor($ancho,$altura);
  36.  
  37.           // con esta función la reescalamos
  38.           imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $ancho, $altura, $datos[0], $datos[1]);
  39.  
  40.           // voilà la salvamos con el nombre y en el lugar que nos interesa.
  41.           imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
  42.           }
  43.        
  44.        
  45.         // si del tipo png
  46.         if($tipo == "png"){
  47.           $img = @imagecreatefrompng($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");
  48.        
  49.           // miramos el tamaño de la imagen original...
  50.           $datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n");
  51.  
  52.           // intentamos escalar la imagen original a la medida que nos interesa
  53.           $ratio = ($datos[0] / $ancho);
  54.           $altura = round($datos[1] / $ratio);
  55.  
  56.           // esta será la nueva imagen reescalada
  57.           $thumb = imagecreatetruecolor($ancho,$altura);
  58.  
  59.           // con esta función la reescalamos
  60.           imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $ancho, $altura, $datos[0], $datos[1]);
  61.  
  62.           // voilà la salvamos con el nombre y en el lugar que nos interesa.
  63.           imagepng($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
  64.           }
  65.      
  66.         // si del tipo gif
  67.         if($tipo == "gif"){
  68.           $img = @imagecreatefromgif($camino.$nombre) or die("No se encuentra la imagen $camino$nombre<br>\n");
  69.        
  70.           // miramos el tamaño de la imagen original...
  71.           $datos = getimagesize($camino.$nombre) or die("Problemas con $camino$nombre<br>\n");
  72.  
  73.           // intentamos escalar la imagen original a la medida que nos interesa
  74.           $ratio = ($datos[0] / $ancho);
  75.           $altura = round($datos[1] / $ratio);
  76.  
  77.           // esta será la nueva imagen reescalada
  78.           $thumb = imagecreatetruecolor($ancho,$altura);
  79.  
  80.           // con esta función la reescalamos
  81.           imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $ancho, $altura, $datos[0], $datos[1]);
  82.  
  83.           // voilà la salvamos con el nombre y en el lugar que nos interesa.
  84.           imagegif($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
  85.           }
  86.          
  87.      
  88.      
  89.      }
  90. }

No recuerdo de donde lo saque, pero fue desde este foro.
Espero que te sirva, y ante cualquier duda me consultas que trataré de ayudarte.
__________________
El mundo nada puede contra un hombre que canta en la miseria.
-- Ernesto Sábato--