Foros del Web » Programando para Internet » PHP »

redimencionar imagen subida al servidor

Estas en el tema de redimencionar imagen subida al servidor en el foro de PHP en Foros del Web. Saludos amig@s... bueno tengo un problema... hice este sistema para redimencionar las fotos que se subiran a el servidor y no me funciona bien.... este ...
  #1 (permalink)  
Antiguo 24/05/2006, 19:24
 
Fecha de Ingreso: febrero-2006
Ubicación: Barquisimeto, Venezuela
Mensajes: 36
Antigüedad: 20 años, 7 meses
Puntos: 0
Exclamación redimencionar imagen subida al servidor

Saludos amig@s...

bueno tengo un problema... hice este sistema para redimencionar las fotos que se subiran a el servidor y no me funciona bien....

este es el codigo de la pagina que procesa la informacion del formulario de envio....

subir.php

Código HTML:
<body>
<form action="control_archivos.php" method="post" enctype="multipart/form-data"> 
<input type="file" name="1" /> 
<input type="submit" name="submit" value="Subir imagen" /> 
</form> 
</body> 
control_archivos.php
Código PHP:
require("red_1.php");
$articulo=0018;
$destino = 'archivos_subidos'; 
$tamano_archivo = $_FILES['1']['size']; 
$tipo_archivo = $_FILES['1']['type']; 
if (!( (
strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 2000000) )) { 
echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 2 Mb máximo.</td></tr></table>"; 
}else{ 
if (
move_uploaded_file($_FILES['1']['tmp_name'],$destino.'/'.$articulo.'_1.jpg')){ 
echo 
"El archivo ha sido cargado correctamente. ".$tamano_archivo." Kb<br>";
}
if(
imgResample2("1", "/archivos_subidos")){
echo 
"El archivo ha sido redimensionado correctamente. ".$tamano_archivo." Kb";}
else{ 
echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse."; 
} 
} 
  #2 (permalink)  
Antiguo 24/05/2006, 19:32
 
Fecha de Ingreso: febrero-2006
Ubicación: Barquisimeto, Venezuela
Mensajes: 36
Antigüedad: 20 años, 7 meses
Puntos: 0
Exclamación continuacion

Código PHP:
################################################################################################## 
# BEGIN imgResample2 
# ------------------------------------------------------------------------------------------------ 
 
function imgResample2 ($campo, $dir="", $anchura=400, $anchura_thumb=111, $watermark="", $watermark_thumb="", $pos="L-T", $wmdist=0, $c1=95, $c2=97){ 
if(
$_FILES[$campo]['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[$campo]['name']; 
$type=$_FILES[$campo]['type']; 
$image_name = $name; 
 
//Imagen original en el servidor 
$temp=$_FILES[$campo]['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[$campo]['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[$campo]['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 
 
//INICIA WATERMARK 
//posición horizontal y vertical del watermark: 
$pos = explode("-",$pos); 
$wmhorz=$pos[0]; 
$wmvert=$pos[1]; 
 
if(
$watermark != ''){ 
$logo = imagecreatefrompng($watermark); 
$margen = $wmdist; //distancia entre el watermark y la orilla 
$logoW =imagesx($logo); //Anchura del logo 
$logoH =imagesy($logo); //Altura del logo 
switch ($wmhorz){ 
case 
"L": 
$xpos=$margen; 
break; 
//end L 
case "R": 
$xpos=$anchura-$logoW-$margen; //posición en x del wm 
break; //end R 
} //end switch hotz 
switch ($wmvert){ 
case 
"T": 
$ypos=$margen; 
break; 
//end T 
case "B": 
$ypos=$altura-$logoH-$margen; //posición en y del wm 
break; //end B 
} //end switch vert 
imagecopy($image, $logo, $xpos, $ypos, 0, 0, $logoW, $logoH); //Pone el logo 
imagedestroy($logo); //destruye el logo después de usarlo 
} 
//TERMINA WATERMARK 
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 = "small"; 
if(
$dir!=""){ 
if(!
file_exists($dir.$subdir)) mkdir($dir.$subdir); 
} else { 
if(!
file_exists($subdir)) mkdir($subdir); 
} 
//asigna las variables 
$name=$_FILES[$campo]['name']; 
$type=$_FILES[$campo]['type']; 
$thumb_name = $subdir."/".$name; 
 
//Imagen original en el servidor 
$temp=$_FILES[$campo]['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[$campo]['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[$campo]['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 
//INICIA WATERMARK THUMB 
if($watermark_thumb != ''){ 
$logo_thumb = imagecreatefrompng($watermark_thumb); 
$margen = $wmdist; //distancia entre el watermark y la orilla 
$logoW_thumb =imagesx($logo_thumb); //Anchura del logo 
$logoH_thumb =imagesy($logo_thumb); //Altura del logo 
switch ($wmhorz){ 
case 
"L": 
$xposThumb=$margen/2; 
break; 
//end L 
case "R": 
$xposThumb=$anchura_thumb-$logoW_thumb-($margen/2); //posición en x del wm 
break; //end R 
} //end switch hotz 
switch ($wmvert){ 
case 
"T": 
$yposThumb=$margen/2; 
break; 
//end T 
case "B": 
$yposThumb=$altura_thumb-$logoH_thumb-($margen/2); //posición en y del wm 
break; //end B 
} //end switch vert 
imagecopy($thumb, $logo_thumb, $xposThumb, $yposThumb, 0, 0, $logoW_thumb, $logoH_thumb); //Pone el logo 
imagedestroy($logo_thumb); //destruye el logo después de usarlo 
} 
//TERMINA WATERMARK THUMB 
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; 
$resampled[2] = "<img src=\"$dir$image_name?i=$unique\">"; 
$resampled[3] = "<img src=\"$dir$thumb_name?i=$unique\">"; 
 
return 
$resampled; 
 
} 
# END imgResample2 
################################################################################################## 
el detalle es que me dice que no consigue la imagen en la ruta indicada...

por cierto donde guardo las imagenes se llama "archivos_subidos" y tengo esa cartepa creada en esta ruta "D:\AppServ\www\la" y resulta que algo extraño pasa... en la raiz de la unidad D: se me crea la carpeta al ejecutar el script.... en donde me equivoque???

gracias de antemano amig@s ....
  #3 (permalink)  
Antiguo 24/05/2006, 19:33
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 21 años, 6 meses
Puntos: 33
De acuerdo

Por favor menciona el error o problema que estas teniendo


Saludillos
  #4 (permalink)  
Antiguo 24/05/2006, 19:35
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 21 años, 6 meses
Puntos: 33
De acuerdo

¿Tienes permisos de lectura y escritura en dicha carpeta?
  #5 (permalink)  
Antiguo 25/05/2006, 09:13
 
Fecha de Ingreso: febrero-2006
Ubicación: Barquisimeto, Venezuela
Mensajes: 36
Antigüedad: 20 años, 7 meses
Puntos: 0
El problema...

bueno es que no encuentran las imagenes en la ruta que ya han sido guardadas... yo estoy usando el script red_1.php que el codigo ya lo coloque... y bueno no funciona o sera que no comprendi bien como funciona... hay un pedazo del codigo que crea dicha carpeta si no esta creada...
Código PHP:
if($dir!=""){ 
if(!
file_exists($dir)) mkdir($dir); 
} 
y me doy cuenta que eso si lo hace... aunque no lo deberia hacer.... por q yo ya la tengo creada en la ruta D:\AppServ\www\la\archivos_subidos o sea http://localhost/la y resulta que dicha carpeta la crea en la raiz de la unidad D:\ y es muy extraño que eso pase por que segun la direccion q yo le coloco al script para q busque las imagenes es

imgResample2("1", "/archivos_subidos")

entonces que es lo que esta mal??? por favor prueben el codigo y me dicen.... muchas gracias...!!

pd: la parte donde me muestra el mensaje de error es:
Código PHP:
//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[$campo]['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[$campo]['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); 
} 
gracias!!!!
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 07:58.