Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/05/2011, 09:47
crispin93
 
Fecha de Ingreso: julio-2009
Mensajes: 40
Antigüedad: 17 años, 1 mes
Puntos: 0
Problema con upload de imagenes

Hola a todos, estoy intentado crear un sistema de noticias con un sistema para subir imagen. El problema que tengo esta en ese sistema de subida de imagen, la sube bien a la base de datos, pero a la hora de mostrarse no se ve nada.

Esta página sería donde se vería la imagen con la noticia: (index.php)
Código PHP:
<?php include_once("config.php"); ?>
 
<?php 
$conex 
= mysql_connect ("$servidor","$usuario","$password"); 
if (!
$conex) 
{ 
die(
'NO puede conetarse: ' . mysql_error()); 
} 
mysql_select_db ("$database", $conex); 
$resultado = mysql_query ("SELECT * FROM noticia"); 
while(
$mostrador = mysql_fetch_array($resultado)) 
{ 
echo 
"<img src=images_bd.php?id=$mostrador[id]&tam=2 class=alignleft >"; 
echo 
"<a href=detalle.php?id=$mostrador[id]>"; 
echo 
$mostrador['titulo']; 
echo 
"</a></br>"; 
echo 
$mostrador['subtitulo']; 
echo 
"Categoria :"; 
echo 
$mostrador['categoria']; 
} 
mysql_close($conex); 
?>
Desde aquí se subiria la imagen y la noticia: (admin.php)
Código PHP:
<?php include_once("config.php"); ?>
 
<?php 
// Verificamos que el formulario no ha sido enviado aun 
$postback = (isset($_POST["enviar"])) ? true : false; 
if(
$postback){ 
// errores 
error_reporting(E_ALL); 
# Altura de el thumbnail en píxeles 
define("ALTURA", 100); 
# Nombre del archivo temporal del thumbnail 
define("NAMETHUMB", "c:/windows/temp/thumbtemp"); 
define("DBHOST", "$servidor"); 
define("DBNAME", "$database"); 
define("DBUSER", "$usuario"); 
define("DBPASSWORD", "$password"); 
$mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png"); 
$name = $_FILES["foto"]["name"]; 
$type = $_FILES["foto"]["type"]; 
$tmp_name = $_FILES["foto"]["tmp_name"]; 
$size = $_FILES["foto"]["size"]; 
if(!
in_array($type, $mimetypes)) 
die(
"Seleciones una Imagen o El archivo que subiste no es una Imagen válida"); 
switch(
$type) { 
case 
$mimetypes[0]: 
case 
$mimetypes[1]: 
$img = imagecreatefromjpeg($tmp_name); 
break; 
case 
$mimetypes[2]: 
$img = imagecreatefromgif($tmp_name); 
break; 
case 
$mimetypes[3]: 
$img = imagecreatefrompng($tmp_name); 
break; 
} 
$datos = getimagesize($tmp_name); 
$ratio = ($datos[1]/ALTURA); 
$ancho = round($datos[0]/$ratio); 
$thumb = imagecreatetruecolor($ancho, ALTURA); 
imagecopyresized($thumb, $img, 0, 0, 0, 0, $ancho, ALTURA, $datos[0], $datos[1]); 
switch(
$type) { 
case 
$mimetypes[0]: 
case 
$mimetypes[1]: 
imagejpeg($thumb, NAMETHUMB); 
break; 
case 
$mimetypes[2]: 
imagegif($thumb, NAMETHUMB); 
break; 
case 
$mimetypes[3]: 
imagepng($thumb, NAMETHUMB); 
break; 
} 
# foto original 
$fp = fopen($tmp_name, "rb"); 
$tfoto = fread($fp, filesize($tmp_name)); 
$tfoto = addslashes($tfoto); 
fclose($fp); 
# thumbnail 
$fp = fopen(NAMETHUMB, "rb"); 
$tthumb = fread($fp, filesize(NAMETHUMB)); 
$tthumb = addslashes($tthumb); 
fclose($fp); 
// Borra archivos temporales 
@unlink($tmp_name); 
@
unlink(NAMETHUMB); 
//proceso de almacenamiento 
$fuente = $_POST["fuente"]; 
$categoria = $_POST["categoria"]; 
$titulo = (ucfirst($_POST["titulo"])); 
$subtitulo = $_POST["subtitulo"]; 
$detalle = (nl2br(htmlspecialchars(urldecode($_POST["detalle"])))); 
$link = mysql_connect(DBHOST, DBUSER, DBPASSWORD) or die(mysql_error($link));; 
mysql_select_db(DBNAME, $link) or die(mysql_error($link)); 
$sql = "INSERT INTO noticia(fuente, categoria, titulo, subtitulo, detalle, foto, thumb, mime) 
VALUES 
('$fuente', '$categoria', '$titulo', '$subtitulo', '$detalle', '$tfoto', '$tthumb', '$type')"
; 
mysql_query($sql, $link) or die(mysql_error($link)); 
echo 
" Archivos Guardados, correctamente "; 
exit(); 
} 
?>
 
<html> 
<head> 
<title>Mi Sistema de Noticia</title> 
</head> 
<body> 
<form name="frmimage" id="frmimage" method="post" 
enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
<p>Titulo<br /> 
<input name="titulo" type="text" class="text" id="titulo" /> 
</p> 
<p> Subtitulo<br /> 
<textarea name="subtitulo" id="subtitulo" cols="60" rows="5" tabindex="4"></textarea> 
</p> 
<p> Detalle<br /> 
<textarea name="detalle" id="detalle" cols="60" rows="10" tabindex="4"></textarea> 
</p> 
<p> 
Seleciones una imagen<br> 
<input name="foto" type="file" class="text" id="foto" /> 
</p> 
<p> 
</p> 
Fuente de la Noticia <br> 
<input name="fuente" type="text" class="text" id="fuente" /> 
</p> 
<p> 
<input name="fecha" type="hidden" id="fecha" /> 
<input name="enviar" type="submit" id="enviar" value="Publicar" /> 
</p> 
</form> 
</body> 
</html>
Y esto sería lo que procesa la imagen (images_bd.php)
Código PHP:
<?php require_once("config.php") ?>
 
<?php 
error_reporting
(E_ALL); 
define("DBHOST", "$servidor"); 
define("DBNAME", "$database"); 
define("DBUSER", "$usuario"); 
define("DBPASSWORD", "$password"); 
$id = (isset($_GET["id"])) ? $_GET["id"] : exit(); 
$tam = (isset($_GET["tam"])) ? $_GET["tam"] : 1; 
switch(
$tam) { 
case 
"1": 
$campo = "foto";break;; 
case 
"2": 
$campo = "thumb";break;; 
default: 
$campo = "foto";break;; 
} 
$sql = "SELECT $campo, mime 
FROM noticia 
WHERE id = $id"
; 
$link = mysql_connect(DBHOST, DBUSER, DBPASSWORD) or die(mysql_error($link));
mysql_select_db(DBNAME, $link) or die(mysql_error($link)); 
$conn = mysql_query($sql, $link) or die(mysql_error($link)); 
$datos = mysql_fetch_array($conn); 
$imagen = $datos[0]; 
$mime = $datos[1]; 
header("Content-Type: $mime"); 
echo 
$imagen; 
?>
Alguien me podría decir si hay algo mal en el codigo o cual es el error que no me deja ver las imágenes?

Un Saludo y gracias de antemano.