visualizar utilizando una subir solo ruta mostrar modificar imágenes imagenes imagen guardar eliminar ejemplo desde con actualizar php html mysql database image-uploading

utilizando - subir y visualizar imágenes con php y mysql



Cómo subir imágenes a la base de datos MySQL usando código PHP (4)

¿Cómo INSERTAR EN DB?

<html> <head> <title>Uploads</title> </head> <body> <input type="file" name="file_array[]"/> <input type="file" name="file_array[]"/> <input type="file" name="file_array[]"/> <input type="submit" name="submit"/> </body> </html> <?php if(isset($_FILES[''file_array''])) { $name_array = $_FILES[''file_array''][''name'']; $tmp_name_array = $_FILES[''file_array''][''tmp_name'']; $type_array = $_FILES[''file_array''][''type'']; $size_array = $_FILES[''file_array''][''size'']; $error_array = $_FILES[''file_array''][''error'']; $dir = "slideshow"; for($i = 0; $i<count($tmp_name_array); $i++) { if(move_uploaded_file($tmp_name_array,"slideshow/".$name_array)) { echo $name_array[$i]."Upload is complete<br>"; } else { echo"Move_uploaded_file function failed for".$name_array[$i]."<br>"; } } } ?>

Estoy tratando de guardar imágenes en mi base de datos desde un formulario HTML. He escrito código PHP para realizar esta tarea. El programa no genera ningún mensaje de error, pero tampoco inserta datos de imagen en la base de datos MySQL. Por favor, compruébalo. Aquí estoy compartiendo un extracto de mi código.

/*------------------- IMAGE QUERY ---------------*/ $file =$_FILES[''image''][''tmp_name'']; if(!isset($file)) { echo ''Please select an Image''; } else { $image_check = getimagesize($_FILES[''image''][''tmp_name'']); if($image_check==false) { echo ''Not a Valid Image''; } else { $image = file_get_contents ($_FILES[''image''][''tmp_name'']); $image_name = $_FILES[''image''][''name'']; if ($image_query = mysql_query ("insert into product_images values (1,''$image_name'',$image )")) { echo $current_id; //echo ''Successfull''; } else { echo mysql_error(); } } } /*----------------- IMAGE QUERY END ---------------------*/ <form action=''insert_product.php'' method=''POST'' enctype=''multipart/form-data'' ></br> File : <input type=''file'' name= ''image'' > </form>

Mensaje de error Tiene un error en su sintaxis SQL; verifique el manual que corresponde a la versión de su servidor MySQL para conocer la sintaxis correcta para usar cerca de '''' en la línea 1


En primer lugar, debe comprobar si su columna de imagen es de tipo BLOB .

No sé nada acerca de su tabla SQL, pero si intento hacer mi propia como ejemplo.

Obtuvimos los campos id (int), image (blob) y image_name (varchar (64)).

Por lo tanto, el código debería tener este aspecto (asuma que el ID es siempre ''1'' y usemos mysql_query):

$image = addslashes(file_get_contents($_FILES[''image''][''tmp_name''])); //SQL Injection defence! $image_name = addslashes($_FILES[''image''][''name'']); $sql = "INSERT INTO `product_images` (`id`, `image`, `image_name`) VALUES (''1'', ''{$image}'', ''{$image_name}'')"; if (!mysql_query($sql)) { // Error handling echo "Something went wrong! :("; }

Lo estás haciendo mal de muchas maneras. No use las funciones mysql, ¡están en desuso! Utilice PDO o MySQLi . También debe pensar en almacenar las ubicaciones de los archivos en el disco. Se cree que el uso de MySQL para almacenar imágenes es Bad Idea ™. El manejo de la tabla SQL con big data como imágenes puede ser problemático.

También su formulario HTML está fuera de los estándares. Debe tener un aspecto como este:

<form action="insert_product.php" method="POST" enctype="multipart/form-data"> <label>File: </label><input type="file" name="image" /> <input type="submit" /> </form>

Nota al margen:

Al tratar con archivos y almacenarlos como un BLOB, los datos deben escaparse utilizando mysql_real_escape_string() , de lo contrario, se producirá un error de sintaxis.


Este es el código perfecto para cargar y mostrar imágenes a través de la base de datos MySQL.

<html> <body> <form method="post" enctype="multipart/form-data"> <input type="file" name="image"/> <input type="submit" name="submit" value="Upload"/> </form> <?php if(isset($_POST[''submit''])) { if(getimagesize($_FILES[''image''][''tmp_name''])==FALSE) { echo " error "; } else { $image = $_FILES[''image''][''tmp_name'']; $image = addslashes(file_get_contents($image)); saveimage($image); } } function saveimage($image) { $dbcon=mysqli_connect(''localhost'',''root'','''',''dbname''); $qry="insert into tablename (name) values (''$image'')"; $result=mysqli_query($dbcon,$qry); if($result) { echo " <br/>Image uploaded."; header(''location:urlofpage.php''); } else { echo " error "; } } ?> </body> </html>


Sólo unos pocos detalles más :

  • Añadir campo mysql

`image` blob

  • Obtener datos de la imagen

$image = addslashes(file_get_contents($_FILES[''image''][''tmp_name'']));

  • Insertar datos de imagen en db

$sql = "INSERT INTO `product_images` (`id`, `image`) VALUES (''1'', ''{$image}'')";

  • Mostrar imagen a la web.

<img src="data:image/png;base64,''.base64_encode($row[''image'']).''">

  • Fin