Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CI] Upload 3ech plików z jednego forma
Forum PHP.pl > Forum > PHP > Frameworki
john_doe
Witam,

mam formularz z trzema polami input type="file"
Każe z nich ma inne name

motoda w modelu ( 1 parametr to nazwa pola input type="file", 2 parametr to dozwolone rozszerzenia plików, 3 parametr ma służyć mi czy robić mini czy nie)
  1. function do_upload($my_file, $types, $flaque) {
  2.  
  3. $config = array(
  4. 'allowed_types' => $types, //'jpg|jpeg|gif|png',
  5. 'upload_path' => $this->gallery_path,
  6. 'overwrite' => true,
  7. 'max_size' => 2000
  8. );
  9.  
  10. $this->load->library('upload', $config);
  11. $this->upload->do_upload($my_file);
  12. $image_data = $this->upload->data();
  13.  
  14. if($flaque == 1)
  15. {
  16. $config = array(
  17. 'source_image' => $image_data['full_path'],
  18. 'new_image' => $this->gallery_path . '/thumbs',
  19. //'create_thumb' => TRUE,
  20. 'maintain_ration' => true,
  21. 'width' => 150,
  22. 'height' => 100
  23. );
  24.  
  25. $this->load->library('image_lib', $config);
  26. $this->image_lib->resize();
  27. }
  28.  
  29.  
  30. }


i wywołanie w kontrolerze

  1. function index() {
  2.  
  3. $this->load->model('Gallery_model');
  4.  
  5. if ($this->input->post('upload')) {
  6.  
  7. $this->Gallery_model->do_upload('myFile', 'jpg|gif|png|jpeg', 1); // robi mini
  8.  
  9. $this->Gallery_model->do_upload('pdf1', 'pdf', 0); // nie ma robić mini
  10.  
  11. }
  12.  
  13. }


dlaczego uploaduje mi obraz a pdf nie?
jak puszczę tylko pdf to uploaduje sad.gif

teraz jeszcze jak pobrać nazwę zuploadowanego pliku -> muszę to do bazy zapakoać


pozdrawiam
qrooel
W starym CI, chyba 1.7, zrobiłem to jak poniżej.


  1. public function attachments_proccess()
  2. {
  3. $this->load->library('upload');
  4.  
  5. $y = 0;
  6. foreach($_FILES as $file)
  7. {
  8. if($file['name'] != '')
  9. {
  10. $ext = preg_replace("/.*\.([^.]+)$/","\\1", $file['name']);
  11. $config['allowed_types'] = $ext.'|'.$file['type'];
  12. $config['upload_path'] = './attachments/';
  13. $config['max_size'] = '0';
  14.  
  15. $this->upload->initialize($config);
  16.  
  17. $this->upload->do_upload($y);
  18. $upload_data = $this->upload->data();
  19.  
  20. $data = array(
  21. 'file_name' => $upload_data['file_name'],
  22. 'raw_name' => $upload_data['raw_name'],
  23. 'file_own_name' => $_POST['file_own_name'][$y],
  24. 'file_order' => $_POST['file_order'][$y],
  25. 'in_use' => 0
  26. );
  27.  
  28. $this->db->insert('attachments', $data);
  29.  
  30. unset($upload_data);
  31. unset($config);
  32. }
  33. $y++;
  34. }
szok
Bo za każdym razem ładujesz na nowo bibliotekę upload, zamiast zainicjonować nową konfigurację.

Swoja drogą nie wiem czy nie lepiej jak upload plików zostawisz w kontrolerze zamiast w modelach. W dokumentacji CI przykłady które są są właśnie w kontrolerach a nie modelach.


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.