Codeigniter - Bild Hochladen, thumbnail generieren, speichern Sie beide Verzeichnisse in der Datenbank
Dies ist mein Modell:
Ich erhalte die folgende Fehlermeldung
Fatal error: Call to undefined method CI_Image_lib::data() in C:\xampp\htdocs\adcc\application\models\media_model.php on line 58
Meine Frage: Warum kann ich nicht mit Daten (), um die ['vollständiger_pfad'] aus den gespeicherten Miniaturansichten (wie ich für den upload)?
Gibt es einen besseren Weg, dies zu tun? Danke!
public function set_media() {
$config1 = array(
'allowed_types' => 'jpg|jpeg|gif|png',
'upload_path' => $this->gallery_path . '/images',
'max_size' => 2048
);
$this->load->library('upload');
$this->upload->initialize($config1);
$this->upload->do_upload();
$image_data = $this->upload->data();
$config2 = array(
'source_image' => $image_data['full_path'],
'new_image' => $this->gallery_path . '/thumbs',
'maintain_ratio' => true,
'width' => 150,
'height' => 100
);
$this->load->library('image_lib', $config2);
$this->image_lib->resize();
$image_data2 = $this->image_lib->data();
$this->load->helper('url');
$id = url_title($this->input->post('title'), 'dash', TRUE);
$data = array(
'id' => $id,
'name' => $this->input->post('name'),
'link' => $this->input->post('link'),
'year' => $this->input->post('year'),
'actors' => $this->input->post('actors'),
'image' => $image_data['full_path'],
'thumb' => $image_data2['full_path']
);
return $this->mongo_db->insert('media', $data);
}
- warum wollen Sie generieren Miniaturansicht. Hochgeladen Element ist das Bild schon richtig? Sie wollen pic mit kleiner Größe? Check this --> white-hat-web-design.co.uk/blog/Größenänderung-Bilder-mit-php
Du musst angemeldet sein, um einen Kommentar abzugeben.
Darf man nicht das ['vollständiger_pfad'] von Daten() auf dem image-lib, weil
$this->image_lib
ist nicht eine Instanz der upload-Bibliothek und das einfach nicht, dass die Methode (wie die Fehlermeldung besagt).Mit deiner config jetzt, die image_lib erstellen wird das neue verkleinerte Bild unter dem gleichen Dateinamen, dass Ihr original-Bild und speichern Sie es unter dem Verzeichnis, das Sie angeben, in confing ist
new_image
. Der resultierende vollständige Pfad wird gespeichert werden, in der$full_dst_path
Eigenschaft des image_lib und es gibt$dest_folder
und$dest_image
für den Ordner und den Dateinamen, nur zu.Also um diese zu nutzen, legen Sie einfach die Zeile:
Und beim speichern einfach schreiben:
Umgang mit dem Fehler, dass der Upload oder Image_lib Bibliothek zurückgeben könnte, wäre ebenfalls eine gute Idee.
müssen Sie auch zum initialisieren der Teil für die image_lib config-array vor der Größenänderung dieser arbeitete für mich https://stackoverflow.com/a/21187402/2897770
Nur hinzufügen, dass diese nach dem laden image_lib
$dies->image_lib->initialize($config2);