Просмотр изображения, хранящегося в базе данных, с использованием php

#php #codeigniter

#php #codeigniter

Вопрос:

Я пытаюсь просмотреть изображение, которое было сохранено в моей базе данных, и то, что хранится в базе данных, является именем файла изображения

Это код, в котором он извлекает данные

 function fetch_data()  
 {  
      ob_start();
      $output = '';  
      $conn = mysqli_connect("localhost", "root", "", "it180p");  
      $sql = "SELECT * FROM incidentreport ORDER BY reportId ASC";  
      $result = mysqli_query($conn, $sql);  
      while($row = mysqli_fetch_array($result))  
      {       
      $output .= '<tr>  
                          <td>'.$row["status"].'</td>  
                          <td>'.$row["school"].'</td>  
                          <td>'.$row["gradeLvl"].'</td>  
                          <td>'.$row["section"].'</td>  
                          <td>'.$row["dateTime"].'</td>  
                          <td>'.$row["incidentType"].'</td>  
                          <td>'.$row["incidentDesc"].'</td>  
                            <td>'.$row["sender"].'</td> 
                          <td>'.$row["invPeople"].'</td>  
                          <td>'.$row["studStatYes"].'</td> 
                            <td>'.$row["studStatNo"].'</td> 
                              <td>'.$row["numInvPeople"].'</td> 
                              <td>'.$row["attachment"].'</td> 
                     </tr>  
                          ';  
      }  
      return $output;  
 }  
  

И это код, в котором он просматривает извлеченные данные

 <?php foreach($incidentreports as $report) { ?>
                    <tr>                    
                      <td><?php echo $report["school"]; ?></td>
                      <td><?php echo $report["gradeLvl"]; ?></td>
                      <td><?php echo $report["section"]; ?></td>
                      <td><?php echo $report["dateTime"]; ?></td>
                      <td><?php echo $report["reportDate"]; ?></td>
                      <td><?php echo $report["incidentType"]; ?></td>
                      <td><?php echo $report["incidentDesc"]; ?></td>
                      <td><?php echo $report["invPeople"]; ?></td>
                      <td><?php echo $report["sender"]; ?></td>
                       <td><?php echo $report["studStatYes"]; ?></td>
                      <td><?php echo $report["studStatNo"]; ?></td>
                       <td><?php echo $report["maleCount"]; ?></td>
                        <td><?php echo $report["femaleCount"]; ?></td>
                       <td><?php echo $report["numInvPeople"]; ?></td>
                       <td><?php echo '<img src="uploads/png;base64,'. ( $report["attachment"] ).'"/>'; ?></td>


                    </tr>
  

Когда я только помещаю «вложение», отображается только имя файла, поэтому я попытался использовать приведенный выше код. Ошибки не было, но изображение не загружается, оно отображается только как сломанный значок img. Я пробовал другие способы, но в настоящее время я застрял здесь и не знаю, что делать. Был бы очень признателен, если кто-нибудь сможет мне с этим помочь.

Ответ №1:

попробуйте это, /png;base64 это не понято, поэтому удалено

 <td><img src="<?php echo base_url('uploads/'.$report["attachment"]); ?>"></td>
  

Не забудьте добавить расширение, если вы не сохранили его в БД

Комментарии:

1. Ценю помощь, сэр. Я попробовал это и заглянул в исходный код, и, похоже, он показывает правильный путь к папке и файлу изображения, хотя он по-прежнему показывает сломанный значок img

2. Расположение пути — » localhost: 80 /it180/uploads/3 «, а «3» — это файл изображения. Я думаю, что для правильной загрузки изображения необходимо указать расширение файла (.png)?

3. Я предполагаю, что вы сохранили имя файла с его расширением

4. да, подумав об этом, я забыл включить расширение, это моя ошибка

5. в любом случае, вы действительно помогли мне в этом. Большое спасибо!

Ответ №2:

 <td><img src="<?php echo 'your_image_path/'.$report['attachment']); ?>"></td>
  

Попробуйте приведенный выше код. А «your_image_path» — это путь к изображению. пример:https://localhost/your_project/uploads/
Если вы используете фреймворк codeigniter, следуйте ответу М.Хеманта. Это решит вашу проблему.