2015-01-13 3 views
0

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

вид базы данных

id   image1      image2     image3 
1  carouselimage/image1.jpg carouselimage/image2.jpg carouselimage/image3.jpg 

в настоящее время код фронтэнда и внутреннего интерфейса, что у меня есть:

форма, которая загружает изображение

<form action="saveimage.php" enctype="multipart/form-data" method="post"> 
    <input name="files[]" type="file"> 
    <input name="files[]" type="file"> 
    <input name="files[]" type="file"> 
    <input type="submit" value="Upload File" name="submit" id="upload"> 
</form> 

сохранить image.php

<?php 
ob_start(); 
require 'connection.php'; 
if (isset($_POST['submit'])) 
    { 
      function GetImageExtension($imagetype) 
       { 
        if(empty($imagetype)) return false; 
        switch($imagetype) 
         { 
          case 'image/bmp': return '.bmp'; 
          case 'image/gif': return '.gif'; 
          case 'image/png': return '.png'; 
          default: return false; 
         } 
       } 




    if (!empty($file["name"])) 
     { 
      foreach($_POST['files'] as $file) 
       { 
        $file_name=$file["name"]; 
        $temp_name=$file["tmp_name"]; 
        $imgtype=$fil["type"];  
        $ext= GetImageExtension($imgtype);  
        $imagename=image1.$ext;  

        $target_path = "carouselimage/".$imagename;  

        if(move_uploaded_file($temp_name, $target_path)) 
         { 
          $sql = "UPDATE carousel SET image1='$target_path' WHERE id=1"; 
          if (mysqli_query($con, $sql)) 
           { 
            //echo "Record updated successfully"; 
           } 
          else 
           { 
            //echo "Error updating record: " . mysqli_error($con); 
           } 
         } 
        else 
         { 
          $error .="Error While uploading image on the server"; 
         } 
       } 
     } 
    } 

?>

мнение, что я хочу

enter image description here

и через одной кнопки я хочу, чтобы загрузить и сохранить 3 изображения (также упоминается ч/б кодирование). Может ли кто-нибудь сказать, как я могу изменить код бэкэнда, чтобы загрузить 3 изображения. Однако мои изображения не получают загружены и путь их не получает сохраняется в базе данных

+0

Просто удалите других и отправьте только один. На стороне PHP вы можете получить доступ к каждому файлу по его имени. Вы можете использовать name = 'myFile []' для ввода массива. – Spoke44

+0

@jogesh_pi упомянутое сообщение определенно показывает загрузку нескольких, но мне также нужно обновить мою базу данных. – user3732711

+0

@ Spoke44 Я сделал это, но я не смог обновить таблицу базы данных – user3732711

ответ

0

Использовать имя изображения в виде массива, как имя = «файлы []»

и использовать

<?php 
    ob_start(); 
    require 'connection.php'; 
      function GetImageExtension($imagetype) 
       { 
        if(empty($imagetype)) return false; 
        switch($imagetype) 
         { 
          case 'image/bmp': return '.bmp'; 
          case 'image/gif': return '.gif'; 
          case 'image/png': return '.png'; 
          default: return false; 
         } 
       } 

    foreach($_POST['files'] as $file) { 


    if (!empty($file["name"])) 
        { 
         $file_name=$file["name"]; 
         $temp_name=$file["tmp_name"]; 
         $imgtype=$fil["type"];  
         $ext= GetImageExtension($imgtype);  
         $imagename=image1.$ext;  

         $target_path = "carouselimage/".$imagename;  

         if(move_uploaded_file($temp_name, $target_path)) 
          { 
           $sql = "UPDATE carousel SET image1='$target_path' WHERE id=1"; // here i wish to update image2 and image3 column also as shown in database 
           if (mysqli_query($con, $sql)) 
            { 
             //echo "Record updated successfully"; 
            } 
           else 
            { 
             //echo "Error updating record: " . mysqli_error($con); 
            } 
          } 
         else 
          { 
           $error .="Error While uploading image on the server"; 
          } 
        } 
    } 
     ?> 
+0

Это обновление только одного столбца i.e image1, я хочу обновить колонку image2 и image3 также – user3732711

+0

Пожалуйста, покажите свой HTML Это должно быть как parveen

+0

Я обновил свой код, могу ли вы рассказать, как я могу обновить 3 столбца базы данных с контуром изображения – user3732711

0
Update your html as below, 

<input name="file[]" type="file"> 
<input name="file[]" type="file"> 
<input name="file[]" type="file"> 

In php , 

foreach($_POST['file'] as $file) { 
//Your Code here 
} 
+0

@ user3732711 вам нужно внести изменения в html и php – user3040610

+0

мой php-код в настоящее время обновляет один столбец. Может ли PLZ рассказать, как я могу обновить все 3 столбца в соответствии с представлением базы данных. – user3732711

+1

У вас есть 2 названия – Mihai

0

Try это как HTML код

ввода имя типа = "uploadedimage1" = "файл"

имя входного типа = "uploadedimage2" = "Файл"

ввода имя типа = "uploadedimage3" = "Файл"

Попробуйте это как HTML код код PHP

вставки в ТПС (image1, image2, image3) значения ('$ _ FILES [' uploadedimage1 '] [' name ']', '$ _ FILES [' uploadedimage2 '] [' name ']', '$ _ FILES [' uploadedimage3 '] [' name ']')

0

Пожалуйста, обратите внимание на этот пост с refrence в Multiple file upload in php

for($i=0; $i<count($_FILES['upload']['name']); $i++) { 
    //Get the temp file path 
    $tmpFilePath = $_FILES['upload']['tmp_name'][$i]; 

    //Make sure we have a filepath 
    if ($tmpFilePath != ""){ 
    //Setup our new file path 
    $TARGET_PATH= "carouselimage" . strtolower($_FILES['upload']['name'][$i]); 

    //Upload the file into the temp dir 
    if(move_uploaded_file($tmpFilePath, $TARGET_PATH)) { 

     //Handle other code here 
     $sql = "UPDATE carousel SET image".($i+1)."='$TARGET_PATH' WHERE id=1"; 
     // Run your query 

    } 
    } 
} 
Смежные вопросы