Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Zmiana wymiarów obrazka
Forum PHP.pl > Forum > Przedszkole
mczlowiek
Witam, tworzę system newsów, który ma możliwość dodawania obrazków, zdjęc itp.

Wszystkie informacje o zdjęciach przechowywane są w tabeli upload_images, która składa się z pól:
id/pojemność/nazwa/typ

newsy przechowywyje w tabeli news, która ma następujące pola:
id/tytul/autor/tresc/obraz/data

Tutaj skrypt dodajacy dane do tabeli news, oraz upload_images:
  1. <?php
  2. $p_pojemnosc=$_FILES['plik']['size'];//pojemnosc pliku
  3. $p_typ=$_FILES['plik']['type']; // typ pliku
  4. $p_nazwa=$_FILES['plik']['name']; // nazwa pliku
  5. $p_smiec=$_FILES['plik']['tmp_name']; // chwilowa nazwa pliku
  6.  
  7. $p_roz= array_pop(explode(".", $p_nazwa)); //wycinamy rozszerzenie z pobieranego pliku
  8.  
  9.  
  10. $max_size=round(($_POST['max_file_size']/1048576),3)."MB"; //odbieramy dane z pola ukrytego i zaokrąglamy je do 3 miejsca po przecinku/dzielimy przez 1204*1024 by było w MB //
  11.  
  12. //zaokrąglamy "round" do 2 miejsc po przecinku i przeliczamy rozmiar pliku na MB
  13. $poj_MB=round(($p_pojemnosc/1048576),2).'MB'; //zaokrąglamy "round" do 2 miejsc po przecinku i przeliczamy rozmiar pliku na MB
  14.  
  15. $p_nazwa_zm=(md5($p_nazwa)).".".$p_roz;//kodujemy nasz plik metodą MD5 i dodajemy date i godzinę oraz rozszerzenie pliku
  16. $folder="upload/";
  17.  
  18. if {
  19. ...}//tutaj sprawdza czy plik istnieje, nie ma za dużego rozmiaru itp
  20.  
  21.  else {
  22.        if(!@move_uploaded_file($p_smiec, $folder.$p_nazwa_zm))
  23.          exit('Nie mozna zachowac pliku. Prawdopodobnie nie ma folderu lub nie można w nim zapisać');
  24.  
  25.        echo "Przeslanie udało się - <b>".$k_nieb.$p_nazwa."</b>"." ".$poj_MB."<br />";
  26.        $path_file=$folder.$p_nazwa_zm;
  27.        $conn = mysql_connect('sql.tktbet.nazwa.pl:3305', 'tktbet', 'barca3367') or die('Error connecting to mysql');
  28.        mysql_select_db('tktbet');
  29.        $zapytanie=mysql_query("insert into upload_images values(NULL,'$p_pojemnosc','$path_file','$p_typ')");
  30.      
  31.        $data =     $_POST['data'];
  32.        $tytul =    $_POST['tytul'];
  33.        $tresc =     $_POST['tresc'];
  34.        $autor =     $_POST['autor'];
  35.        
  36.        $zapytanie2=mysql_query("insert into news values(NULL,'$tytul','$autor','$tresc','$p_nazwa_zm','$data')");
  37.        echo mysql_error();
  38.        
  39.        
  40. }
  41.  
  42.  
  43.  
  44. ?>

Czy takie rozwiązanie jest dobre, oraz jak zrobić aby wgrany obraz posiadał miniaturkę?

Proszę o podpowiedź
zulus
Co do miniaturek, to jeżeli ich rozmiar jest stały i nie będzie się zmieniał, to wypadało by je wygenerować (PHP ma trochę funkcji graficznych, jeżeli tylko masz zainstalowane GD) i zapisać np do osobnego folderu.

Jeżeli to ma się zmieniać to musisz napisać generowanie miniaturek w osobnym pliku, i odwoływać się do niego w src="" z odpowiednimi parametrami (wtedy warto by pomyśleć o jakimś cache)
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.