1

現在、画像をページにアップロードし、2 つのフォルダーに保存しようとしています。画像をアップロードすると、ギャラリーとサムネイル フォルダーに保存されます。

サムズ フォルダに保存された画像が画面に表示され、画像をクリックすると、ギャラリー フォルダに保存された適切なサイズで表示されます。現時点では、画像はギャラリー データベースとギャラリー フォルダーに保存されていますが、サムネイル画像が画面に表示されません。

サムフォルダに保存されていないためだと思います。フォルダに保存されないのはなぜですか?

コントローラ:

class Gallery extends CI_Controller {

   function __construct() {

      // Call the parent construct
      parent::__construct();
      $this->load->model("profiles");
      $this->load->model("gal_model");
      $this->load->helper(array('form', 'url'));
      $this->gallery_path = 'web-project-jb/assets/gallery/';
      $this->gallery_path_url = base_url().'web-project-jb/assets/gallery/';
   }

   function upload() {
      $config = array(
         'allowed_types' =>'gif|jpg|jpeg|png',
         'upload_path' => $this->gallery_path,
         'max_size' => 10000,
         'max_width' => 1024,
         'max_height' => 768);

      $this->load->library('upload', $config);

      $image_data = $this->upload->data();

      $config = array(
         'source_image' => $image_data["full_path"],
         'new_image' => $this->gallery_path. '/thumbs',
         'maintain_ration' => true,
         'width' => 150,
         'height' => 100
      );

      $this->load->library("image_lib", $config);

      $this->image_lib->resize();

      $username = $this->session->userdata('username');

      if ( ! $this->upload->do_upload()) {

         $error = array('error' => $this->upload->display_errors());
         $username = $this->session->userdata('username');
         $viewData['username'] = $username;

         $this->load->view('shared/header');
         $this->load->view('gallery/galtitle', $viewData);
         $this->load->view('shared/nav');
         $this->load->view('gallery/galview', $error, $viewData, array('error' => ' '));
         $this->load->view('shared/footer');

      } else {

         $file_data  = $this->upload->data();
         $image = $this->gallery_path.$file_data['file_name'];
         $data['image'] = $this->gallery_path.$file_data['file_name'];
         $this->username = $this->session->userdata('username');
         $images = $this->session->userdata('images');
         $data['images'] = $images;
         $this->gal_model->putGalleryImage($username, $image);
         $this->session->set_userdata($image);
         $viewData['username'] = $username;
         $data['gal_model'] = $this->gal_model->get_images($username);
         var_dump($image);

         $username = $this->session->userdata('username');

         $this->load->view('shared/header');
         $this->load->view('gallery/galtitle', $viewData);
         $this->load->view('shared/nav');
         $this->load->view('gallery/galview', $data, $viewData);
         $this->load->view('shared/footer');
      }
   }

   function index() {
      $username = $this->session->userdata('username');
      $images = $this->session->userdata('images');
      $this->load->library('upload');
      $data['gal_model'] = $this->gal_model->get_images($username);
      $file_data = $this->upload->data();
      $file_data['file_name'] = $this->gal_model->get_images($username);
      $image = $this->gallery_path.$file_data['file_name'];
      $data['image'] = $file_data['file_name'];
      $data['images'] = $images;
      $viewData['username'] = $username;

      $this->load->view('shared/header');
      $this->load->view('gallery/galtitle', $viewData);
      $this->load->view('shared/nav');
      $this->load->view('gallery/galview', $viewData, $data, array('error' => ' '));
      $this->load->view('shared/footer');
   }
}

ギャルモデル:

class Gal_model extends CI_Model {
  var $gallery_path;
  var $gallery_path_url;
  function Gal_model() {
    parent::__construct();
    $this->gallery_path = 'web-project-jb/assets/gallery/';
    $this->gallery_path_url = base_url().'web-project-jb/assets/gallery/';
  }
  function exists($username) {
    $this->db->select('*')->from("gallery")->where('user', $username);
    $query = $this->db->get();
    if ($query->num_rows() > 0) {
      return true;
    } else {
      return false;
    }
  }
  function putGalleryImage($username, $image) {
    $record = array('user' => $username, 'galleryimage' => $image);
    $this->session->set_userdata($image);
    if ($this->exists($username)) {
      $this->db->where('user', $username)->insert('gallery', $record);
    }
  }
  function get_images($username) {
    $this->db->select('*')->from('gal_model')->where('user', $username);
    $files = scandir($this->gallery_path);
    $files = array_diff($files, array('.', '..', 'thumbs'));
    $images = array();
    foreach ($files as $file) {
      $images[] = array(
        'url' => $this->gallery_path_url.$file,
        'thumb_url' => $this->gallery_path_url.'thumbs/'.$file
      );
    }
    return $images;
  }
}

ギャラリー ビュー:

<? if (isset($images) && is_array($images)): foreach($images as $image):?>
<a href="<?php echo $image['url']; ?>">
<img src ="<?php echo $image['thumb_url']; ?>"width='150' height='150'/>
<?= endforeach; else:  ?>
<div id = "blank_gallery">Please upload an Image</div>
<? endif; ?>
4

0 に答える 0