Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CI] Podstawy
Forum PHP.pl > Forum > PHP > Frameworki
junkie
Witam.
Przyszedł czas aby zrobić krok na przód w tworzeniu aplikacji webowych i przejść na OOP.
Tak więc po wielu godzinach przeglądania przykładów różnych frameworków wybór padł właśnie na Codeigniter.
Zastanawiałem się jeszcze nad młodszym bratem CI -> Kohaną, ale jednak CI jakoś lepiej do mnie przemówił.

Więc jeśli już padł wybór to czas zacząć pisać na początek coś małego i tak wybór padł na skrypcik uploadu plików.

I teraz mam małe pytanie, otóż chciałbym się zapytać, czy taki sposób przesyłania informacji do VIEW jest poprawny:

Klasa kontrolera Main (INDEX) wygląda następująco

  1. <?php
  2. class Main extends CI_Controller
  3. {
  4.  
  5. function index()
  6. {
  7. $this->load->view('index');
  8. }
  9. function upload()
  10. {
  11. // FILE INFO //
  12. $plik['tmp'] = $_FILES["file"]['tmp_name'];
  13. $plik['size'] = $_FILES["file"]["size"];
  14. $plik['type'] = $_FILES["file"]['type'];
  15. //$plik['maxmbyte]=round(($max_size/1048576),2).'MB';
  16. $plik['mbyte']=round(($plik['size']/1048576),2).'MB';
  17.  
  18. if ($plik['size'] > 0)
  19. {
  20.  
  21. }
  22. else
  23. {
  24. $data['blad'] = 'Wielkość wysyłanego pliku nie może równać się 0kb';
  25. }
  26. if (isset($data['blad']))
  27. $this->load->view('index', $data);
  28. }
  29. }
  30. ?>


Funkcja index(); jest wywoływana po wpisaniu adresu, a upload(); służy jako element do zapisu danych z formularza.

Teraz pytanie:

czy kod:

  1. $data['blad'] = 'Wielkość wysyłanego pliku nie może równać się 0kb';
  2. }
  3. if (isset($data['blad']))
  4. $this->load->view('index', $data);


jest poprawnym zapisem? czy powinienem to wykonać w inny sposób.

Plik widoku wygląda tak:
  1. <?php
  2. $this->load->view('header');
  3.  
  4.  
  5. $this->load->view('menu_nologin');
  6. if(isset($blad))
  7. {
  8. $this->load->view('blad');
  9. }
  10. $this->load->view('fileupload');
  11. $this->load->view('footer');


Dziękuję z góry za każdą informację. Niestety tutoriale znalezione w sieci są strasznie pokręcone i przeplatają w sobie php4 z php5.
qrooel
http://codeigniter.com/user_guide/librarie..._uploading.html

Tak, w ten sposób wysyłasz dane do widoku, czyli poprawnie.
junkie
Ok, dzięki za odpowiedź.
Teraz mam problem z .htaccess i ładnymi linkami.

Otóż mam przykładowo link:

http://localhost/imgs/picinfo/be78732782622ee.png

i chcę aby wyglądał tak:

http://localhost/imgs-be78732782622ee.png

W wersji bez frameworka miałem zrobione to tak:
  1. RewriteRule ^imgs-([^-]*)$ imgs.php?ph=$1


A tutaj pojawiają się schody:/
Dawałem:
  1. RewriteRule ^imgs-([^-]*)$ imgs/picinfo/$1


ale to nic nie dało.
szok
Do uploadawania plikøw korzystaj z gotowej biblioteki
I zrob tak jak oni tam napisali
http://codeigniter.com/user_guide/librarie..._uploading.html
Gdzie przekazujesz bledy do widoku ktore byly wygenerowane przez framework. (jest polska paczka do tlumaczen)

Przyjazne linki do CI;
http://www.farinspace.com/codeigniter-htaccess-file/

Co do htaccess, po co dla obrazkow robisz przyjazne linki? zrob sobie katalogi:
assets/images
assets/css
assets/js
I tam wgrywaj dane pliki.

dostep do nich masz <?php echo base_url(); ?>assets/images/obrazek.jpg


PS. Sorki za polskie znaki niemam polskiej klawiatury sad.gif
junkie
Cytat
Co do htaccess, po co dla obrazkow robisz przyjazne linki? zrob sobie katalogi:


No nie do końca dla obrazka tylko dla informacji o obrazku - strona z linkami do samego obrazka, miniatury, itp.

Dodatkowo po co odbiorca - użytkownik ma wiedzieć w jakich katalogach leżą pliki?

Przykładowo informacje o obrazku będą wczytywane przez kontroler imgs - funkcje imginfo, i wywołałbym sobie to tak:

http://localhost/imgs-be78732782622ee.png czyli /imgs/imginfo/ zamienione zostaje na imgs-
http://localhost/pic-be78732782622ee.png czyli przykładowo folder /pics zostaje zamieniony ładnie na pic-
http://localhost/th-be78732782622ee.png czyli w tym przypadku miniatura generowana dynamicznie przez kontroler imgs, funkcję thumbs.


itd.
Skrypt w sumie przepisuję na nowo w CI ze skryptu, który napisałem kilka miesięcy temu w standardowy sposób i pragnę go rozbudować.
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.