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, $textos, 1);
$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.