2016-06-05 2 views
0

Я не могу показывать изображения, сохраненные в базе данных MYSQL Вот мой взгляд код, который загрузить файлГалерея изображений с использованием CodeIgniter

<?php echo form_open_multipart('Welcome/do_upload');?> 
<input name="file" size="40" type="file" /> 
<input type="submit" value="Upload" /> 

это мой файл контроллер

public function do_upload() 
    { 
     $this->output->enable_profiler(TRUE); 
     $config['upload_path'] = './uploads/'; 
     $config['allowed_types'] = 'gif|jpg|png'; 
     $config['max_size'] = '3000'; 
     $config['max_width'] = '1024'; 
     $config['max_height'] = '768'; 
     $this->load->library('upload', $config); 

     if (! $this->upload->do_upload('file')) 
     { 
      $error = array('error' => $this->upload->display_errors()); 
      echo "<pre>"; 
      print_r($this->input->post()); 
      print_r($error); 
     } 
     else 
     { 
      $data = array('upload_data' => $this->upload->data('file')); 
      echo "Upload"; 
      $this->Blog->insert_images($this->upload->data()); 
      $data = array('upload_data' => $this->upload->data()); 

     } 
    } 

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

public function insert_images($image_data = array()){ 
     $data = array(
      'i_id' => "NULL", 
      'i_s' => $image_data['full_path'] 
    ); 
     $img=$this->db->get('images')->result(); 
     foreach($img as $i){ 
      ?> 
     <img src="<?php echo $i->i_s?>"> 

      <?php 
      } 

     } 

любая помощь будет высоко оценена

+1

Никогда поместите HTML в модель. Даже вам не нужно размещать html в контроллере. Прикрепите HTML к своим файлам просмотра. Если вы хотите, чтобы путь загрузки только что был загружен, вы должны сделать это уже в контроллере. Из модели просто возвращать булевскую вставку с успехом или нет. Если это успешно, вы можете использовать путь к загруженному изображению, так как у вас есть его в контроллере. – Tpojka

+0

@Tpojka согласен с вами, что файлы просмотра помещаются в папку просмотра вместо модели, но это не проблема в моем случае. Я не могу получить изображения из базы данных после получения изображений, поэтому не проблема, в представлениях или модели. Вы нашли ошибку в моем запросе выборки ??? –

+0

Проверьте свою модель еще раз. Вы вообще не использовали метод 'insert()'. Но вы пытаетесь получить данные из таблицы? Вы должны сначала вставить что-то, чтобы вытащить его. – Tpojka

ответ

0

Вы не должны хранить абсолютный путь к файлу. Вы должны хранить относительный путь изображения в базе данных. Относительно

FCPATH 

Например: если ваши настройки

$config['base_url'] = 'http://localhost/site/'; 

, хранится строка в БД должна быть чем-то вроде

img.jpg 

Если вы хотите, чтобы увидеть его в браузере, вы бы звонок

echo base_url('img.jpg'); 
+0

my base_url показывает, когда я эхо его ** http://127.0.0.1/Frame_Work/Blog_SIte(torrent)/** $ data = array ( 'i_id' => "NULL", 'i_s' => $ image_data ['full_path'] ); print_r ($ data); Массив ([i_id] => NULL [i_s] => E:/xampp/htdocs/Frame_Work/Blog_SIte (torrent) /uploads/215483d85.jpg) –

+0

Здесь он не читается.Измените свой вопрос и добавьте его в предварительно отформатированные теги. – Tpojka

+0

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

1

Проблема сохранения пути в базе данных

$data = array(
      'i_id' => "NULL", 
      'i_s' => $image_data['full_path'] 
    ); 

заменить этот код этого

$data = array(
      'i_id' => "NULL", 
      'i_s' => $image_data['file_name'] 
    ); 

и для отображения изображений из базы данных не писать этот код

<?php foreach($im as $imd){?> 
<img src="<?php echo base_url('uploads/'.$imd->i_s);?>"> 
<?php }?> 
+0

Я думаю, что вы храните неправильную строку в БД. Вместо сохранения относительного пути или slug, он сохраняет полный абсолютный путь, который не используется для предварительного просмотра в браузере. – Tpojka

+0

У вас была проблема? – Tpojka

+0

@Tpojka да, проблема решена, но большое спасибо за ваше время и интерес ... –

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