Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][HTML]Zdjęcie
ArturEales
post
Post #1





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 21.09.2008

Ostrzeżenie: (0%)
-----


Witam. Mam następujący problem jak dodać zdjęcie na serwer za pomocą tego formularza:
Kod
<form action="..." enctype="multipart/form-data">
     <input [b]type="file"[/b] name="nazwa" />
</form>
wstydnis.gif proszę o odpowiedź.

Ten post edytował ArturEales 3.10.2008, 16:44:00
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Zac
post
Post #2





Grupa: Zarejestrowani
Postów: 27
Pomógł: 2
Dołączył: 9.06.2008

Ostrzeżenie: (0%)
-----


Proponuje zacząć od określenia maksymalnego rozmiaru zdjęcia oraz określenia typów plików jakie chcesz wrzucać (w twoim przypadku .jpg, .gif, .png). Do tego musiz sie posługiwać "$_FILES". Typy najlepiej wrzucić do tablicy. Ja jeszcze zawsze pozbywam się polskich znaków i zamieniam spacje na "_" ale to już jak kto chce. Następnie sprawdź czy na serwerze istnieje folder do którego chcesz wrzucać zdjęcia - jeżeli nie należy go stworzyć, potem sprawdź czy typ pliku i rozmiar się zgadzją. Jeżeli wszystko jest ok użyj funkcji move_uploaded_file() zeby zapisac plik w folderze, którym chcesz. Jeżeli jakis warunek nie będzie spełniony (max. rozmiar, typ pliku) użyj finkcji unlink() żeby nie zostawiać pliku w folderze tmp. Wydaje mi sie że tyle wystarczy.
Pozdrawiam
Go to the top of the page
+Quote Post
-gox-
post
Post #3





Goście







Zachowac bezpieczenstwo takiego uploadu to cos co Ci sie nie uda smile.gif

Zobacz jak fajnie to wyglada we frameworku CodeIgnier, oto moj skrypt uploadu fotek:
Szczerze polecam bo mniej czasu zajmie Ci przeczytanie user-guide co jest rownowazne z posiadnieciem wiedzy jak pisac w CI, nic pisanie od golasa..

Kontroller:
  1. <?php
  2.  
  3. function up() {
  4.    $this->load->view('upload_form', array('error' => ' ' ));
  5.    return;
  6. }
  7.  
  8. function up_do() {
  9.  
  10.    $config['upload_path'] = './uploads/';
  11.    $config['allowed_types'] = 'gif|png|jpg|jpeg|JPEG|JPG';
  12.    $config['max_size']    = '1500';
  13.    //$config['max_width']  = '1024';
  14.    //$config['max_height']  = '768';
  15.    $config['encrypt_name'] = true;
  16.    $this->load->library('upload', $config);
  17.  
  18.    if ( ! $this->upload->do_upload()) {
  19.        $error = array('error' => $this->upload->display_errors());
  20.        $this->load->view('upload_form', $error);
  21.        return;
  22.    }
  23.  
  24.    $data = $this->upload->data();
  25.  
  26.    if ( empty($data['image_width']) or
  27.         empty($data['image_height']) or
  28.         empty($data['image_type']))
  29.    {
  30.        $error = array('error' => '<p>Plik nie jest porpawnym obrazkiem.</p>');
  31.        $this->load->view('upload_form', $error);
  32.        return;
  33.    }
  34.    
  35.    $data = array(    'upload_data' => $data,
  36.                    'fname' => $this->_gen_name($data['file_path'], $data['full_path'], $data['file_ext']),
  37.    );
  38.    $this->load->view('upload_success', $data);
  39.    return;
  40. }
  41.  
  42.  
  43.  
  44. # @param    int    random string strlen
  45. function _gen_rand_name($len=6) {
  46.    $chars = 'QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890';
  47.    $chars_count = strlen($chars) - 1;
  48.    $rand_name = '';
  49.    srand();
  50.    while( strlen($rand_name) < (int)$len)
  51.        $rand_name .= $chars{ mt_rand(0, $chars_count) };
  52.    return $rand_name;
  53. }
  54.  
  55. # @param    string    "file_path" like -> D:/htdocs/fotki/uploads/
  56. # @param    string    "full_path" like -> D:/htdocs/fotki/uploads/fc0de9b4e7899adb909fd043c5161c68.gif
  57. function _gen_name($fpath='', $fname='', $fext='') {
  58.    if ( ! is_dir($fpath)) die('blad odczytu bazy');
  59.    if ( ! is_file($fname))    die('blad odczytu pliku');
  60.    if ( ! preg_match('#^.[w]{3,4}$#', $fext)) die('nieprawidlowe rozszerzenie?');
  61.    $fext = strtolower($fext);
  62.  
  63.    do {
  64.        $rname = $this->_gen_rand_name();
  65.    } while ( is_file( $fpath . $rname ));
  66.  
  67.    rename( $fname, $fpath . $rname . $fext );
  68.    return $rname . $fext;
  69. }
  70.  
  71. ?>


widok: upload_form
  1. <?php echo $error;?>
  2. <?php echo form_open_multipart('up_do');?>
  3. <input type="file" class="lol" name="userfile" size="30" />
  4. <input type="submit" value="wrzuc zdjecie" />
  5. </form>



Staram sie tylko poromowac sluszna koncepcje uzywania frameworkow.

pozdro600
Go to the top of the page
+Quote Post
decha-design
post
Post #4





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

Ostrzeżenie: (0%)
-----


Cytat(gox @ 3.10.2008, 20:11:11 ) *
Staram sie tylko poromowac sluszna koncepcje uzywania frameworkow.

pozdro600


eeee, framework raczej nie jest potrzebny do małej strony ...

Ten post edytował decha-design 3.10.2008, 22:29:16


--------------------
Go to the top of the page
+Quote Post
-gox-
post
Post #5





Goście







"eeee, framework raczej nie jest potrzebny do małej strony ..."


od razu widac ze nigdy zadnego nie uzywales....
framework nigdy nie jest potrzebny, ale zawsze jest szalenie pomocny i skracajacy czas pisania, write less, do more...
Go to the top of the page
+Quote Post
Ociu
post
Post #6





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




...
http://wortal.php.pl/wortal/artykuly/php/p...y/upload_plikow
Zero własnej inicjatywy, miliony razy na forum.
Zamykam.
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 19:51