Bien Me complace anunciar que tras ardua revisión del código ya están todos los problemas resueltos.
Te envío mi mas inmenso agradecimiento Otraverix, has sido muy amable, sin tu ayuda no habría podido.
AL final la cosa por si les interés quedó así:
Guardo los datos del Producto con imagen y miniatura a la BD a través de este código:
carga_datos.php
Código PHP:
<html>
<head>
<title>Upload File To MySQL Database</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
.box {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
border: 1px solid #000000;
}
.Estilo1 {
font-size: 24px;
font-weight: bold;
color: #FFCC00;
}
body {
background-color: #71828A;
}
.Estilo3 {
color: #CCCCCC;
font-weight: bold;
}
-->
</style>
</head>
<body>
<?php
// Verificamos que el formulario no ha sido enviado aun
$postback = (isset($_POST["upload"])) ? true : false;
if($postback){
// Nivel de errores
error_reporting(E_ALL);
// Constantes
# Altura de el thumbnail en pÃ*xeles
define("ALTURA", 200);
# Nombre del archivo temporal del thumbnail
define("NAMETHUMB", "/tmp/thumbtemp"); //Esto en servidores Linux, en Windows podrÃ*a ser:
// define("NAMETHUMB", "c:/windows/temp/thumbtemp"); y te olvidas de los problemas de permisos
# Servidor de base de datos
define("DBHOST", "www.********.com");
# nombre de la base de datos
define("DBNAME", "dbequipelsol");
# Usuario de base de datos
define("DBUSER", "******");
# Password de base de datos
define("DBPASSWORD", "******");
// Mime types permitidos
$mimetypes = array("image/jpeg", "image/pjpeg", "image/gif", "image/png");
// Variables de la foto
$name = $_FILES["userfile"]["name"];
$type = $_FILES["userfile"]["type"];
$tmp_name = $_FILES["userfile"]["tmp_name"];
$size = $_FILES["userfile"]["size"];
// Verificamos si el archivo es una imagen válida
if(!in_array($type, $mimetypes))
die("El archivo que subiste no es una imagen válida");
// Creando el thumbnail
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;
}
// Extrae los contenidos de las fotos
# contenido de la foto original
$fp = fopen($tmp_name, "rb");
$tfoto = fread($fp, filesize($tmp_name));
$tfoto = addslashes($tfoto);
fclose($fp);
# contenido del thumbnail
$fp = fopen(NAMETHUMB, "rb");
$tthumb = fread($fp, filesize(NAMETHUMB));
$tthumb = addslashes($tthumb);
fclose($fp);
// Borra archivos temporales si es que existen
@unlink($tmp_name);
@unlink(NAMETHUMB);
// Guardamos todo en la base de datos
// con esto cargo datos de producto
$id_producto = $_POST["id_producto"];
$sub_categoria = $_POST["sub_categoria"];
$nombre = $_POST["nombre"];
$marca = $_POST["marca"];
$modelo = $_POST["modelo"];
$n_serie = $_POST["n_serie"];
$precio = $_POST["precio"];
$descripcion = $_POST["descripcion"];
$connection=mysql_connect("www.******.com","******","*******")or die("Error conectando a la base de datos");
mysql_select_db("dbequipelsol",$connection)or die ("Error seleccionando la base de datos");
$query = "INSERT INTO equipos (sub_categoria, nombre, marca, modelo, n_serie, precio, descripcion, name, foto, thumb, type, size)". "VALUES ('$sub_categoria', '$nombre', '$marca', '$modelo', '$n_serie', '$precio', '$descripcion', '$name', '$tfoto', '$tthumb', '$type', $size)";
mysql_query($query, $connection) or die('Error, query failed');
echo "<br>File $fileName uploaded<br>";
}
?>
<form action="" method="post" enctype="multipart/form-data" name="uploadform">
<table width="350" border="1" cellpadding="1" cellspacing="0" class="box"><tr>
<td height="45" colspan="3"><div align="center" class="Estilo1">CARGAR AQUÍ DATOS DEL PRODUCTO </div></td>
</tr>
<tr>
<td colspan="3"><span class="Estilo65 Estilo3">Aqui debe ingresarse los datos correspondientes al producto.</span></td>
</tr>
<tr>
<td colspan="3"><span class="Estilo61"><br></span></td>
</tr>
<tr>
<td width="17%"><span class="Estilo62">
<label><strong>Subcategorias</strong> </label>
</span></td>
<td width="0%"></td>
<td width="83%"><select name="sub_categoria" >
<option value="Cuartos Congeladores">Cuartos Congeladores</option>
<option value="Cuartos Conservadores">Cuartos Conservadores</option>
<option value="Cortadoras Pan">Cortadoras Pan</option>
<option value="Batidoras">Batidoras</option>
<option value="Hornos">Hornos</option>
<option value="Espigueros">Espigueros</option>
<option value="Laminadoras">Laminadoras</option>
<option value="Divisores Boleadoras">Divisores Boleadoras</option>
<option value="Miselaneos Panaderia">Miselaneos Panaderia</option>
<option value="Molinos Para Carne">Molinos Para Carne</option>
<option value="Cortadoras Carne">Cortadoras Carne</option>
<option value="Sierras">Sierras</option>
<option value="Vitrinas Verduleras">Vitrinas Verduleras</option>
<option value="Vitrinas Carniceras">Vitrinas Carniceras</option>
<option value="Refrigeradores">Refrigeradores</option>
<option value="Mesas">Mesas</option>
<option value="Sinks">Sinks</option>
<option value="Equipos Restaurantes">Equipos Restaurantes</option>
<option value="Tiendas o Abarrotes">Tiendas o Abarrotes</option>
<option value="Miselaneos">Miselaneos</option>
<option value="Liquidacion">Liquidacion</option>
</select></td>
</tr>
<tr>
<td colspan="3"><span class="Estilo61"><br></span></td>
</tr>
<tr>
<td><span class="Estilo62"><strong>Nombre: </strong></span></td>
<td></td>
<td><input type="Text" name="nombre" size="40" /></td>
</tr>
<tr>
<td colspan="3"><span class="Estilo61"><br></span></td>
</tr>
<tr>
<td><span class="Estilo62"><strong>Marca: </strong></span></td>
<td></td>
<td><input type="Text" name="marca" size="40" /></td>
</tr>
<tr>
<td colspan="3"><span class="Estilo61"></span><br></td>
</tr>
<tr>
<td><span class="Estilo62"><strong>Modelo: </strong></span></td>
<td></td>
<td><input type="Text" name="modelo" size="40" /></td>
</tr>
<tr>
<td colspan="3"><span class="Estilo61"><br></span></td>
</tr>
<tr>
<td><span class="Estilo62"><strong>Nº Serie: </strong><br />
</span></td>
<td></td>
<td><input type="Text" name="n_serie" size="40" /></td>
</tr>
<tr>
<td colspan="3"><span class="Estilo61"><br></span></td>
</tr>
<tr>
<td><span class="Estilo62"><strong>Precio:
</strong><br />
</span></td>
<td></td>
<td><input type="Text" name="precio" size="40" /></td>
</tr>
<tr>
<td colspan="3"><span class="Estilo61"><br></span></td>
</tr>
<tr>
<td><span class="Estilo62"><strong>Descripción: </strong></span></td>
<td></td>
<td><textarea name="descripcion" cols="40" rows="5"></textarea></td>
</tr>
<tr>
<td colspan="3"><span class="Estilo61"><br></span></td>
</tr>
<tr>
<td width="17%"><span class="Estilo62"><strong>Imagen: </strong></span></td><td></td>
<td width="83%"><input type="hidden"
name="MAX_FILE_SIZE" value="2000000">
<input name="userfile"
type="file" class="box" id="userfile"></td>
</tr>
<tr>
<td> </td>
<td></td>
<td><input type="reset" name="Borrar2" value="Limpiar" class="box"/>
<input name="upload" type="submit" class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>
</body>
</html>