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: 18 años, 1 mes
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: 18 años, 1 mes
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($imgtrue); 
//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($img255,255,255); 
imagefill($image00$FFF); 
imagecopyresampled ($image$img0000$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$ypos00$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 != || $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($imgtrue); 
//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($img255,255,255); 
imagefill($thumb00$FFF); 
imagecopyresampled ($thumb$img0000$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$yposThumb00$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: 19 años, 1 mes
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: 19 años, 1 mes
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: 18 años, 1 mes
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 19:31.