как сохранить загруженное изображение в базе данных с помощью php

привет, напишите этот код, чтобы загрузить и сохранить загруженное изображение в базе данных, но не работайте, пожалуйста, помогите мне!

Файл 1:

<form action="upload.php" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="startUpload();" > <label>File: <input name="myfile" type="file" size="30" /> </label> <input type="submit" name="submitBtn" class="sbtn" value="Upload" /> <iframeid="upload_target"name="upload_target"src="#"style="width:0;height:0;border:0px solid #fff;"></iframe> </form> </div> 

Файл 2:

 <?php // Edit upload location here $destination_path = getcwd().DIRECTORY_SEPARATOR; $target_path="my/"; $result = 0; $name=$_FILES['myfile']['name']; $target_path = $target_path . basename( $_FILES['myfile']['name']); if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) { list($width, $height, $type, $attr) = getimagesize($target_path); echo "Image width " .$width; echo "<BR>"; echo "Image height " .$height; echo "<BR>"; echo "Image type " .$type; echo "<BR>"; echo "Attribute " .$attr; $result = 1; } // sleep(1); $link=mysql_connect('localhost','root',''); if(!$link) {die('you cannot connect to database...');} $db=mysql_select_db('final'); if(!$db)die('smile'); if (isset($_FILES['myfile']) && $_FILES['myfile']['size'] > 0) { // define the posted file into variables $name = $_FILES['myfile']['name']; $tmp_name = $_FILES['myfile']['tmp_name']; $type = $_FILES['myfile']['type']; $size = $_FILES['myfile']['size']; // if your server has magic quotes turned off, add slashes manually //if(!get_magic_quotes_gpc()){ //$name = addslashes($name); //} // open up the file and extract the data/content from it $extract = fopen($tmp_name, 'r'); $content = fread($extract, filesize($tmp_name)); $content = addslashes($content); fclose($extract); // connect to the database // the query that will add this to the database $s=mysql_query("SET NAMES 'utf8'"); $sql = "INSERT INTO `final`.`products` (`Productcode`, `Productname`, `Price`,`Descriptionofgood`, `image`) VALUES ('','','','','".$target_path."') WHERE `products`.`Productcode`='1371' "; $results = mysql_query($sql); if(!$result)die('not'); } ?> 

Технически, если это небольшой проект. Вы не должны хранить файлы изображений в «базе данных»; скорее, только их связь (вам это может и не понадобиться). Изображение или любые мультимедийные файлы хранятся на сервере вместе с вашими другими файлами (html, css, php). Конечно, вам нужно поместить их в выделенную папку. Причина не хранить в базе данных: поскольку они предназначены только для извлечения данных, и что более важно, они имеют меньший размер (большие размеры существуют, я говорю в случае небольшого проекта, который требует минимально возможных ресурсов. Хранение медиафайлов в базе данных просто неэффективен.

Посмотрев на свой код, я могу сказать, что вы пытаетесь сохранить файлы на своем сервере.

Они использовали очень простой скрипт для загрузки здесь . Попробуйте его на своем локальном хосте, прежде чем пытаться на сервере.

Я создал для него три страницы

  1. index.php (форма для изображения uplad)

  2. upload.php (Сохраните изображение в папке загрузки и его пути в базе данных)

3.showimage.php (Показать изображения из базы данных)

Структура базы данных

id int (4) auto increment – изображение varchar (100) – image_name varchar (50)

вот код:

index.php

 <form method="post" action="upload.php" enctype="multipart/form-data"> <label>Choose File to Upload:</label><br /> <input type="hidden" name="id" /> <input type="file" name="uploadimage" /><br /> <input type="submit" value="upload" /> </form> 

uplad.php

 <?php $target_Folder = "upload/"; $uid = $_POST['id']; $target_Path = $target_Folder.basename( $_FILES['uploadimage']['name'] ); $savepath = $target_Path.basename( $_FILES['uploadimage']['name'] ); $file_name = $_FILES['uploadimage']['name']; if(file_exists('upload/'.$file_name)) { echo "That File Already Exisit"; } else { // Database con=mysqli_connect("localhost","user_name","password","database_name"); //Change it if required //Check Connection if(mysqli_connect_errno()) { echo "Failed to connect to database" . mysqli_connect_errno(); } $sql = "INSERT INTO image (id,image, image_name) VALUES ('','$target_Folder$file_name','$file_name') "; if (!mysqli_query($con,$sql)) { die('Error: ' . mysqli_error($con)); } echo "1 record added successfully in the database"; echo '<br />'; mysqli_close($con); // Move the file into UPLOAD folder move_uploaded_file( $_FILES['uploadimage']['tmp_name'], $target_Path ); echo "File Uploaded <br />"; echo 'File Successfully Uploaded to:&nbsp;' . $target_Path; echo '<br />'; echo 'File Name:&nbsp;' . $_FILES['uploadimage']['name']; echo'<br />'; echo 'File Type:&nbsp;' . $_FILES['uploadimage']['type']; echo'<br />'; echo 'File Size:&nbsp;' . $_FILES['uploadimage']['size']; } ?> <a href="showimage.php">Show Image</a> 

showimage.php

 <?php $con=mysqli_connect("localhost","user_name","password","test"); //Change it if required // Check connection if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con,"SELECT * FROM image " ); while($row = mysqli_fetch_array($result)) { echo '<img src="' . $row['image'] . '" width="200" />'; echo'<br /><br />'; } mysqli_close($con); ?> 

if(@move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path)) неверно.

Это должно быть, if(move_uploaded_file($_FILES['myfile']['tmp_name'], $target_path))

Удалите @ .