Creí que se había solucionado, pero no. Esto está muy loco. Si uso por ejemplo "id=1" me quiere descargar ver_upload.php, pero si uso "id=5" me dice:
No se puede mostrar la imágen [...] porque contiene errores
Les dejo tanto el archivo que utilizo para subir imágenes, como el que uso para mostrarlas:
proceso.php (sube imágen)
<?php
include ('conexion.php');
if(isset($_POST['crear_articulo'])) {
$tipo_imagen = explode('image/', $_FILES['imagen']['type']);
$x = $tipo_imagen[1];
if($x == 'gif' || $x == 'jpg' || $x == 'jpeg') {
if($x == 'gif') {
$image = imagecreatefromgif($_FILES['imagen']['tmp_name']);
ob_start();
imagegif($image);
$_output = ob_get_contents();
ob_end_clean();
} else {
$image = imagecreatefromjpeg($_FILES['imagen']['tmp_name']);
ob_start();
imagejpeg($image);
$_output = ob_get_contents();
ob_end_clean();
}
$tipo = 'Bombilla';
$out = str_replace('##','##',mysql_escape_string($_output));
$result = mysql_query("INSERT INTO articulos (imagen, tipo, tipo_imagen) VALUES ('$out', '$tipo', '$x')", $conexion) or
die('Error al guardar informacion en la base de datos: '.mysql_error());
$ID = mysql_query("SELECT id FROM articulos WHERE imagen='$out'", $conexion) or
die('Error al seleccionar el ID: '.mysql_error());
$getID = mysql_fetch_assoc($ID);
$getID = $getID['id'];
echo "<script Language='javascript'>location.href = 'index.php?accion=ver_upload&id=$getID';</script>";
} else {
die('Extension de archivo invalida');
}
} else {
die('No puede acceder a esta pagina manualmente');
}
?>
ver_upload.php (muestra la imágen indicada por "id=")
<?php
include('conexion.php');
if(isset($_GET['id'])) {
$id = trim($_GET['id']);
header('Content-Type: image/'.$tipo_imagen);
$consulta = mysql_query("SELECT * FROM articulos WHERE id='$id'", $conexion) or
die('Error al consultar con la base de datos: '.mysql_error());
if(mysql_num_rows($consulta) == 0) {
echo 'El ID indicado no es valido';
} else {
while($row = mysql_fetch_array($consulta)) {
$tipo = $row['tipo'];
$imagen = $row['imagen'];
$tipo_imagen = $row['tipo_imagen'];
}
if($tipo_imagen == 'jpg' || $tipo_imagen == 'jpeg') {
$tipo_imagen = 'jpeg';
} else {
$tipo_imagen = 'gif';
}
header('Content-Type: image/'.$tipo_imagen);
echo "<b>Tipo de articulo</b>: ".$tipo."<br>";
echo "<b>Imagen</b>:<br>";
print $imagen;
}
} else {
echo 'No se ha indicado el ID';
}
?>