Mi problema es que quiero cargar una imagen a mi base de datos pero que todo sea en un solo archivo y una sola base de datos para al momento de llamar el listado todo sea mas fácil de mostrar con sus respectivos datos y su imagen correspondiente mi código es el siguiente:
Código PHP:
<form name="registrar" accept-charset="iso-8859-1" action=" " method="POST" onsubmit="return formulario(this)" class="cargabd">
<div><label>Nombre de Producto:</label><input name="producto" type="text" size="50" ></div>
<div><label>Marca de Producto:</label><input name="marca" type="text" size="50"></div>
<div><label>Descripción de Producto:</label><textarea name="descripcion" class="textarea" rows="5" cols="39"></textarea></div>
<div><label>Precio de Producto:</label><input name="precio" type="text" size="50" onkeydown="return decimales(this, event)"></div>
<div><label>Cantidad de Productos:</label><input name="cantidad" type="text" size="50"></div>
<div><label></label><input name="imagen" type="file" class="cargar-imagen"></div>
<div> <input type="submit" name="guardar" value="Registrar Producto"/></div>
</form>
<?php
if(isset($_POST['guardar'])){
$producto=$_POST['producto'];
$marca=$_POST['marca'];
$descripcion=$_POST['descripcion'];
$precio=$_POST['precio'];
$cantidad=$_POST['cantidad'];
$imagen=$_POST['imagen'];
$sql = mysql_query("INSERT INTO productos (nombre,marca,descripcion,precio,cantidad,imagen)VALUES('$producto','$marca','$descripcion','$precio','$cantidad','$imagen');");
if (!$sql) {
echo "Fallo en la insercion de registro en la Base de Datos: " . mysql_error();
}else{
/*echo"Los datos se agregaron correctamente!!";*/
header("location:cargar_productos.php");
mysql_free_result();
}
}
/*con este código cargo mis imágenes*/
if ($_FILES["imagen"]["error"] > 0){
echo "ha ocurrido un error";
} else {
//verificar si el tipo de archivo es un tipo de imagen permitido.
//y que el tamano del archivo no exceda los 100kb
$permitidos = array("image/jpg", "image/jpeg", "image/gif", "image/png");
$limite_kb = 100;
if (in_array($_FILES['imagen']['type'], $permitidos) && $_FILES['imagen']['size'] <= $limite_kb * 1024){
//esta es la ruta donde copiaremos la imagen
//recuerden que deben crear un directorio con este mismo nombre
//en el mismo lugar donde se encuentra el archivo subir.php
$ruta = "imagenes/" . $_FILES['imagen']['name'];
//comprobamos si este archivo existe para no volverlo a copiar.
//pero si quieren pueden obviar esto si no es necesario.
//o pueden darle otro nombre para que no sobreescriba el actual.
if (!file_exists($ruta)){
//aqui movemos el archivo desde la ruta temporal a nuestra ruta
//usamos la variable $resultado para almacenar el resultado del proceso de mover el archivo
//almacenara true o false
$resultado = @move_uploaded_file($_FILES["imagen"]["tmp_name"], $ruta);
if ($resultado){
$nombre = $_FILES['imagen']['name'];
@mysql_query("INSERT INTO productos (imagen) VALUES ('$nombre')") ;
echo "El archivo ha sido movido exitosamente.";
exit();
} else {
echo "Ocurrio un error al el archivo.";
exit();
}
} else {
echo "El archivo " .$_FILES['imagen']['name']; echo "<p>ya existe</p>";
}
} else {
echo"Archivo no permitido, es tipo de archivo prohibido o excede el tamano de $limite_kb Kilobytes.";
exit();
}
}?>
Espero alguien me pueda ayudar, gracias de ante mano.