Son varios trozos de código cogidos del foro y no tengo mucha idea de PHP
¿Aguien me puede ayudar?
Código:
<?php # BEGIN imgResample2 # ------------------------------------------------------------------------------------------------ # DESCRIPCIÓN: # Altera el tamaño de una imagen al subirse desde una forma ajustándola a una altura o anchura máxima, # preservando las proporciones. Opcionalmnete puede señalarse una imagen PNG para que sirva com marca de agua # Genera una imagen Thumbnail también. # Acepta imágenes JPG, GIF o PNG y el resultado del proceso se copia al directorio actual como una imagen # DEVUELVE: # Nada # PARÁMETROS: # $archivo -> string, obligatorio; nombre del campo de tipo File del que tomará los valores de la imagen a procesar # $dir -> string, opcional; ruta donde se subirá el archivo. Si se deja vacío lo sube al directorio actual # $anchura -> número, opcional; anchura máxima permitida para las imágenes a fullsize. Valor predeterminado es 250 px # $anchura_thumb -> número, opcional; anchura máxima permitida para las imágenes thumbnail. Valor predeterminado es 100 px # $watermark-> string URL a un archivo PNG, opcional; si existe, incrusta una marca de agua en el fullsize # $watermark_thumb-> string URL a un archivo PNG, opcional; si existe, incrusta una marca de agua en el thumbnail # $pos -> string, opcional, predeterminado = "L-T"; posición horizontal de la marca de agua. Valores permitidos: "L" para izquierda o "R" para derecha, "T" para arriba o "B" para abajo. Separar con un - los valores horizontales y verticales # $wmdist -> número, opcional, predeterminado = 0; padding en pixeles para el Watermark # $c1 -> número, opcional, predeterminado = 85; calidad del jpg de la imagen grande # $c2 -> número, opcional, predeterminado = 90; calidad del jpg de la imagen thumbnail // Aqui debes poner las extensiones que NO admitas $extensiones=array("html","exe","php","txt","doc","htm","asp","zip","rar","pdf","psd","tif","tiff","rtf","ppt","pps"); $nombre=$_FILES['archivo']['name']; $var = explode(".","$nombre"); $num = count($extensiones); $valor = $num-1; for($i=0; $i<=$valor; $i++) { if($extensiones[$i] == $var[1]) { echo "<div id=\"capasubido\"><p class=\"frase\">Tipo de Archivo no admitido.</p><p>Elija archivos tipo JPG.</p><p><a href='javascript:history.back()'><strong>Volver a intentarlo</strong></a></p>"; exit; } } imgResample2('archivo'); // copia la imagen del campo archivo al directorio actual function imgResample2 ($archivo, $dir="../fotos/fotosupload", $anchura=1024, $anchura_thumb=230, $watermark="", $watermark_thumb="", $pos="L-T", $wmdist=0, $c1=95, $c2=97){ if($_FILES[$archivo]['name']!=''){ //Si el campo está lleno, es decir, si se subió una foto... //crea los directorios necesarios if($dir!=""){ if(!file_exists($dir)) mkdir($dir); } //asigna las variables $name=$_FILES[$archivo]['name']; $type=$_FILES[$archivo]['type']; $image_name = "/".$name; //Imagen original en el servidor $temp=$_FILES[$archivo]['tmp_name']; //Objeto con el que trabajará el programa if($type=="image/pjpeg"){ $img = @imagecreatefromjpeg($temp) or die("No se encuentra la imagen $image_name<br>\n"); } if($_FILES[$archivo]['type']=="image/gif"){ $img = @imagecreatefromgif($temp) or die("No se encuentra la imagen $image_name<br>\n"); $image_name = str_replace(".gif", ".jpg", $image_name); } if($_FILES[$archivo]['type']=="image/x-png"){ $img = @imagecreatefrompng($temp) or die("No se encuentra la imagen $image_name<br>\n"); $image_name = str_replace(".png", ".jpg", $image_name); } //Para que acepte la transparencia del PNG imagealphablending($img, true); //INICIA PROCESO $dimensiones = getimagesize($temp); //Dimensiones originales de la imagen $ratio = ($dimensiones[0] / $anchura); $altura = round($dimensiones[1] / $ratio); $image = imagecreatetruecolor($anchura,$altura); //crea la nueva imagen $FFF = imagecolorallocate($img, 255,255,255); imagefill($image, 0, 0, $FFF); imagecopyresampled ($image, $img, 0, 0, 0, 0, $anchura, $altura, $dimensiones[0], $dimensiones[1]);//reescala imagejpeg($image,"$dir$image_name", $c1);//mueve la imagen al server (el segundo parámetro es la calidad) imagedestroy($image); //destruye image imagedestroy($img); //destruye la imagen "origen" //TERMINA IMAGEN //INICIA THUMBNAIL if($anchura_thumb != 0 || $anchura_thumb == $anchura || $anchura_thumb == "" || $anchura_thumb == NULL) { //crea los directorios necesarios $subdir = ""; if($dir!=""){ if(!file_exists($dir.$subdir)) mkdir($dir.$subdir); } else { if(!file_exists($subdir)) mkdir($subdir); } //asigna las variables $name=$_FILES[$archivo]['name']; $type=$_FILES[$archivo]['type']; $thumb_name = $subdir."/thumbnail2_".$name; //Imagen original en el servidor $temp=$_FILES[$archivo]['tmp_name']; //Objeto con el que trabajará el programa if($type=="image/pjpeg"){ $img = @imagecreatefromjpeg($temp) or die("No se encuentra la imagen $image_name<br>\n"); } if($_FILES[$archivo]['type']=="image/gif"){ $img = @imagecreatefromgif($temp) or die("No se encuentra la imagen $image_name<br>\n"); $thumb_name = str_replace(".gif", ".jpg", $thumb_name); } if($_FILES[$archivo]['type']=="image/x-png"){ $img = @imagecreatefrompng($temp) or die("No se encuentra la imagen $image_name<br>\n"); $thumb_name = str_replace(".png", ".jpg", $thumb_name); } //Para que acepte la transparencia del PNG imagealphablending($img, true); //INICIA PROCESO $dimensiones = getimagesize($temp); //Dimensiones originales de la imagen $ratio_thumb = ($dimensiones[0] / $anchura_thumb); $altura_thumb = round($dimensiones[1] / $ratio_thumb); $thumb = imagecreatetruecolor($anchura_thumb,$altura_thumb); //crea la nueva imagen $FFF = imagecolorallocate($img, 255,255,255); imagefill($thumb, 0, 0, $FFF); imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $anchura_thumb, $altura_thumb, $dimensiones[0], $dimensiones[1]);//reescala el thumbnail imagejpeg($thumb,"$dir$thumb_name", $c2);//mueve la imagen al server (el segundo parámetro es la calidad) imagedestroy($thumb); //destruye thumb imagedestroy($img); //destruye la imagen "origen" } else { $thumb_name = $image_name; } // end if != 0 //TERMINA THUMBNAIL } $unique = time(); $resampled[0] = $dir.$image_name; $resampled[1] = $dir.$thumb_name; return $resampled; } if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) { echo "<div id=\"capasubido\"><p class=\"frase\">El archivo se ha subido correctamente al servidor, muchas gracias </p>"; echo "<p>Título: $titulofoto </p>"; echo "<p class=\"nota\">Nota: si desea hacer cualquier modificaión o eliminación contacta con [email protected] </p>"; echo "<p class=\"botonterminar\"><input type='button' value='Terminar' class='boton' onClick=window.location.href='javascript:history.back()'></p></div>"; $fp = fopen("subirfotos.js","a"); //metemos un if para que carge cada foto en su pagina correspondiente. El nombre de la pagina se envia desde un campo oculto en el form de la pagina html que llama a esta fwrite($fp,"//$pagina\nif (parent.window.location.href.toLowerCase().indexOf('".nl2br($pagina)."') != -1)\n{\n"); //escribimos en un js las imagenes fwrite($fp,"document.write('\<a href=\"../fotos/fotosupload/".nl2br($nombre)."\" title=\"".nl2br($titulofoto)."\" \>\<img src=\"../fotos/fotosupload/thumbnail2_".nl2br($nombre)."\" alt=\"".nl2br($titulofoto)."\" \/>\</a>');\n}\n\n"); fclose($fp); // envía un correo cada vez que se hace un comentario mail("[email protected]","nueva foto","nueva foto"); } else { echo "<div id='errorsubida'><p class=\"frase\">Error al subir el archivo</p><p>Elija archivos tipo JPG.</p><p>Puede que el tamaño de la foto sea demasiado grande, máximo 2MB.</p><p class=\"nota\">Pruebe guardando la foto como JPG y reduciendo su tamaño. <br />Si sigue teniendo problemas contacte con [email protected]</p><p><a href='javascript:history.back()'><strong>Volver a intentarlo</strong></a></p></div>"; } ?>