Foros del Web » Programando para Internet » PHP »

Post Images - HELP!!!!

Estas en el tema de Post Images - HELP!!!! en el foro de PHP en Foros del Web. Hola, que tal ya casi estoy loco, eh tratado de subir una imagen a un db, la subo bien, pero debo generar una img de ...
  #1 (permalink)  
Antiguo 12/09/2004, 22:50
 
Fecha de Ingreso: agosto-2004
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Post Images - HELP!!!!

Hola, que tal ya casi estoy loco, eh tratado de subir una imagen a un db, la subo bien, pero debo generar una img de previsualizacion, y ahi tengo problemas (estoy en un servidor gratuito).


- si hay temp.jpg lo borro (cambiando permisos, vericando si existe, etc)
-abro el archivo posteado (imagecreatefrom)
-le cambio el tamaño, y lo guardo como un temp.jpg
-habro la imagen + la previsualizacion (fopen, fread, addslashes)
- hago la consulta sql, y los inserto
- todo kk

pero luego, cuando quiero ver los resultados, la imagen y su previsualizacion, la img bien, la previsualizacion NO (a veces si, a veces no, asi de loco), depure bien, ningun error, intente borrar los temp.jpg, comprobando si existen o no, cambiando los permisos si hacen falta, y muchas otras cosas mas.
no se que puede ser...
no puedo detectar que sera, sospecho mucho de la funcion imagejpeg() no funciona siempre

algo que se me ocurrio, generar la previsualizacion sin crear el archivo temporal, pero no tengo idea, ni se me ocurre como hacerlo.
Si alguien me pudiese ayudar les estaria Muy agradecido.-
funcion cambiar tamaño
Código:
function CambiarTamanioImg($path,$tipo,$tamanio)
{	switch($tipo)
		{
		case 1:
		//$tipo="GIF";
		$fuente = imagecreatefromgif($path); 
		break;
		case 2:
		///$tipo="JPEG";
		$fuente = imagecreatefromjpeg($path); 
		break;
		case 3:
		//$tipo="PNG";
		$fuente = imagecreatefrompng($path); 
		break;
		}
	$picsize = $tamanio;
	$imgancho = imagesx ($fuente); 
	$imgalto =imagesy($fuente); 
if( $imgalto > $tamanio || $imgancho>$tamanio )
	{
	if($imgancho > $imgalto)
		{
		$aspecto = $imgalto / $imgancho; 
		$ancho = $picsize; 
		$alto = abs($ancho * $aspecto);
		}
	else //max alto	
		{
		$aspecto = $imgancho / $imgalto; 
		$alto = $picsize; 
		$ancho = abs($alto * $aspecto); 
		}
	}
else 
	{
	$ancho=$imgancho;
	$alto=$imgalto;		
	}
$imagen=ImageCreateTrueColor($ancho,$alto); 
ImageCopyResized($imagen,$fuente,0,0,0,0,$ancho,$alto,$imgancho,$imgalto); 
imagejpeg($imagen,"temp/prev".$tamanio."0.jpg",90); 
return "temp/prev".$tamanio."0.jpg";
}
Funcion para subir (Resumida)
Código:
 
<?
if(file_exists("temp/prev6600.jpg")) 
	{
	if(chmod("temp/prev6600.jpg",0777)) { echo "CHMOD 6600"; }
	if(unlink("temp/prev6600.jpg")) 
		{ echo "img grande borrada";  }
	}
if(file_exists("temp/prev1000.jpg")) 
	{
	if(chmod("temp/prev1000.jpg",0777)) { echo "CHMOD 1000"; }
	if(unlink("temp/prev1000.jpg")) 
		{ echo "img chica borrada"; } 
	}
if($enviar)
	{
		mysql_pconnect($OPTION[mysqlserver],$OPTION[mysqluser],$OPTION[mysqlpass]);
		$archivo = $_FILES["foto"]["tmp_name"]; 
		$tamanio = $_FILES["foto"]["size"];
		$tipo    = $_FILES["foto"]["type"];
		$info=getimagesize($foto);
		if($info[2] <= 3) ///formato de img === ok ?
			{
			switch($info[2])
				{
				case 1:
				$tipo="GIF";
				break;
				case 2:
				$tipo="JPEG";
				break;
				case 3:
				$tipo="PNG";
				break;
				}
			//$foto="c:\windows\tmp\ssss.tmp"
			//genero previsualizacion:
			$prev_x=CambiarTamanioImg($foto,$info[2],$OPTION[tamanio]);
			$fprev=fopen($prev_x,"rb");
			$img_prev=fread($fprev,filesize($prev_x));
			$img_prev=addslashes($img_prev);
			fclose($fprev);
			
			//open img para la db
			$foto_resized=$foto;				
			$fp = fopen($foto_resized, "rb");
			$contenido = fread($fp,filesize($foto_resized));
	 		$contenido = addslashes($contenido);
			fclose($fp);
				
			$peso=filesize($foto_resized)/1024;
			if(ereg(".",$peso))
				{
				$p = explode(".",$peso);
				$peso = str_replace(".","",$p[0]);
				$peso.=" KB.";
				}
			$tim=date("Y-m-d H:i:s");
			$info=getimagesize($foto_resized);
			$tam=$info[0]."x".$info[1];
			$id_poster=$se_user->getId();
			$nombre=trim($nombre);
			$comentario=trim($comentario);
			$res=mysql_db_query($OPTION[mysqldb],"INSERT INTO fotos (id_usuario, fecha_post, visitas, nombre, comentario, extension, foto, tamanio, peso, foto_prev) VALUES('$id_poster', '$tim', 0, '$nombre', '$comentario','$tipo','$contenido','$tam', '$peso', '$img_prev')");
		}
	}
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 18:36.