Foros del Web » Programando para Internet » PHP »

Problema al cargar imagenes de dimensiones de mas de 2200x1400

Estas en el tema de Problema al cargar imagenes de dimensiones de mas de 2200x1400 en el foro de PHP en Foros del Web. Buenas amigos tengo el siguiente codigo, Código PHP: <?php ini_set ( “memory_limit” , ”64M” );  if(isset( $_POST [ 'submit' ]))    {       $new_height = 100 ...
  #1 (permalink)  
Antiguo 24/05/2010, 10:26
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 14 años, 5 meses
Puntos: 0
Problema al cargar imagenes de dimensiones de mas de 2200x1400

Buenas amigos tengo el siguiente codigo,

Código PHP:
<?php
ini_set
(“memory_limit”,”64M”);
 if(isset(
$_POST['submit']))
   {
     
$new_height=100;
     
$new_width=100;
     
$dir=$_REQUEST[nombre_objeto];
     
$allowed_types = array(
     
'image/pjpeg',
     
'image/gif',
     
'image/png',
     
'image/jpeg',
     
'image/jpg',
     
'application/msword',
     
'application/vnd.ms-excel',
     
'application/pdf',
     
'application/vnd.ms-powerpoint');
     if(
in_array($_FILES['thefile']['type'], $allowed_types))
     {
       
copy ($_FILES['thefile']['tmp_name'], $dir."/".$_FILES['thefile']['name']) or die ("No se puede copiar");
     }
     else
     {
    }
   }

function 
tiny($d$archivo$type){
if (
$type==0) {
    
$original imagecreatefromjpeg("$d/$archivo");
} elseif (
$type==1) {
    
$original imagecreatefromgif("$d/$archivo");
} elseif (
$type==2) {
    
$original imagecreatefrompng("$d/$archivo");
}
$ancho imagesx($original);
$alto imagesy($original);
$anchomini=80;
$altomini=($alto*$anchomini)/$ancho;
if(
$altomini>80){
    
$altomini 80;
    
$anchomini = ($ancho*80)/$alto;
}
$thumb imagecreatetruecolor($anchomini,$altomini);
imagecopyresampled($thumb,$original,0,0,0,0,$anchomini,$altomini,$ancho,$alto);
    if(!
is_dir("$d/thumbs"))    {
          
mkdir("$d/thumbs",0777);
        }
if (
$type==0) {
    
imagejpeg($thumb,"$d/thumbs/tn_$archivo",90);
} elseif (
$type==1) {
    
imagegif($thumb,"$d/thumbs/tn_$archivo",90);
}
}

function 
gallery($fotos) {
    
$i 0;
    if (
is_dir($fotos)) {
       if (
$handle opendir($fotos)) {
          echo 
"<table class='tablaTipo02' cellspacing='1' cellpadding='0' width='100%' border='0'>";
          echo 
"<tr class='tablaTipo02'><td class='destacado' colspan='4'>Archivos cargados</td></tr>";
          echo 
"<tr>";
          while ((
$archivo readdir($handle)) !== false) {
                  if(!(
is_dir($archivo)OR($archivo=="thumbs"))) {
                     echo 
"<td align='center'>";
                         
$aux=explode(".",$archivo);
                       if (
trim(strtoupper($aux[1])) == 'JPG') {
                             if(!
file_exists("$fotos/thumbs/tn_$archivo")){
                                
tiny($fotos,$archivo,0);
                            }
                            echo 
'<a href="'.$fotos.'/'.$archivo.'" target="_blank"><img src="'.$fotos.'/thumbs/tn_'.$archivo.'"/><br>'.$archivo.'</a>';
                      } elseif (
trim(strtoupper($aux[1])) == 'GIF') {
                              if(!
file_exists("$fotos/thumbs/tn_$archivo")){
                                
tiny($fotos,$archivo,1);
                            }
                            echo 
'<a href="'.$fotos.'/'.$archivo.'" target="_blank"><img src="'.$fotos.'/thumbs/tn_'.$archivo.'"/><br>'.$archivo.'</a>';
                      } elseif (
trim(strtoupper($aux[1])) == 'PDF') {
                            echo 
'<a href="'.$fotos.'/'.$archivo.'" target="_blank"><img src="img/pdf.jpg" /><br>'.$archivo.'</a>';
                      } elseif (
trim(strtoupper($aux[1])) == 'DOC') {
                            echo 
'<a href="'.$fotos.'/'.$archivo.'" target="_blank"><img src="img/word.jpg" /><br>'.$archivo.'</a>';
                      } elseif (
trim(strtoupper($aux[1])) == 'PPT') {
                            echo 
'<a href="'.$fotos.'/'.$archivo.'" target="_blank"><img src="img/powerpoint.jpg" /><br>'.$archivo.'</a>';
                      } elseif (
trim(strtoupper($aux[1])) == 'XLS') {
                            echo 
'<a href="'.$fotos.'/'.$archivo.'" target="_blank"><img src="img/excel.jpg" /><br>'.$archivo.'</a>';
                      }
                      echo 
"</td>";
                      
$i++;
                      
$j=($i%4);
                      if(
$j==0){
                            echo  
'</tr><tr>';
                      }
                }
            } 
// while
        
echo "</tr></table>";
         }
         
//closedir($fotos);
   
}
}

    include(
"../encabezado.php");
    echo 
"<LINK rel='stylesheet' href='../v3.css'>";
    
$enlaces = array('javascript:window.close()');
    
$textos = array('Cerrar esta ventana');
    
menu($enlaces$textos1);
    
$directorio $_GET[nombre_objeto];
    if (
$_GET[op]==1) {
        if (!
is_dir("$directorio"))  {
              
mkdir("$directorio",0777);
            }
    }
    echo 
"<td>";
    echo 
"<table>";
    echo 
"<tr><td class=encabezado>Listado de Anexos</td></tr></table>";
    echo 
"<form name='form1' method='post' action='anexos.php?op=0&nombre_objeto=".$directorio."' enctype='multipart/form-data'>";
    echo 
"<table class='tablaTipo02' cellspacing='1' cellpadding='0' width='100%' border='0'><tr>";
    echo 
"<td class='destacado'><div align='right'>Seleccione archivo a anexar:</div></td>";
    echo 
"<td class='informacion'><p><input type='file' name='thefile'><input type='submit' name='submit' value='Cargar'></p></td>";
    echo 
"</tr>";
    echo 
"</table>";
       echo 
"</form>";
    
gallery($directorio);
    echo 
"</td>";
    include(
"../pie.php");
?>
en el cual puedo subir archivos pdf y word, y fotos de menos de 2 MB el problema lo tengo es cuando intento subir archivos jpg con dimensiones de mas de 2200x1400 porque me permite guardarlos en el servidor pero no me permite crear la miniatura del mismo por lo cual no me muestra la imagen aunque este en el servidor y me dice que es imposible crear el llamado a la funcion imagecreatefromjpeg(), debido a que la funcion gallery() muestra las miniaturas de las imagenes cargadas y por las grandes dimensiones de la imagen no puedo crear la miniatura, he intentado de todo pero no puedo encontrar la solucion u otro metodo para guardar la imagen y crear la miniatura de la misma.

por favor me podrian aportar algunas ideas u metodos para crear las miniaturas de archivos de dimensiones mayores de 2200x1400? o sera que mi codigo tiene algun error que no puedo visualizar?
Gracias de antemano.

Última edición por bl4ck; 24/05/2010 a las 10:35

Etiquetas: dimensiones, imagenes, mas
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 14:48.