Article View: pl.comp.lang.php
Article #96Re: rysunki i pliki w bazie
From: Adam Major
Date: Tue, 21 Aug 2001 07:52
Date: Tue, 21 Aug 2001 07:52
92 lines
2925 bytes
2925 bytes
Witaj!
Trzymanie binariów w bazie to nie najlepszy pomysl. Wlasciwie to nie ma
zadnego racjonalnego powodu aby chciec pakowac binaria do bazy.
Czy nie lepiej trzymac w bazie nazwę pliku i jego typ?
Przykladowo, robisz systemik newsów z możliwocią dodania zdjęcia.
Zakladasz ze zdjęcia moga byc w formatach GIF, JPG, PNG
1. tworzysz formularz w ktorym osoba uprawniona moze dodac newsa
- podaje tresc newsa, tytul itp.
- pole (FILE) umożliwiające dodanie zdjęcia.
2. tworzysz skrypt obrabiajacy dodawanie nowego newsa...
jesli zostal wyslany plik to:
- sprawdzasz jego typ mime, jesli nie pasuje do akceptowanego formatu to
to go kasujesz. [unlink()]
- pobierasz wielkosc obrazka
- dodajesz do bazy nowy rekord o przykladowej strukturze
id | tytul | tresc | typ_obrazka | szerokosc | wysokosc
jako typ_obrazka mozesz przyjac:
0 nie ma obrazka
1 GIF
2 JPG
3 PNG
- jesli format pliku ok to kopiujesz go do wybranego katalogu np. img
nazwa pliku to numer_ostatniego_id a roszerzenie zależne od typu mime.
3. wyswietlanie newsa
Pobierasz rekord jesli typ_obrazka > 0 to tworzysz nastepujacy fragment
HTMLa np.
<img src='img/$id.$roz_typ[$roz]' align=left width=$szerokosc
height=$wysokosc>
gdzie
$roz_typ = array ('', 'gif','jpg','png');
To tyle...
Stosowanie plików (zamiast bazy) jest szybsze, wygodniejsze w obsludze,
mozesz latwo podejrzec lub skasowac wybrane pliki.
Mała podpowiedz co do typów plików.
IE i NN różnią się w zwracaniu wartosci typu mime dla JPGów...
Róznica wynika dlatego ze NN nie rozróznia JPGów progresywnych od
normalnych.
Fragment kodu okreslającego rozszerzenie pliku na podstawie typu mime.
switch ($pict1_type)
{
case "image/jpeg" :
$roz = "jpg";
break;
case "image/jpg" :
$roz = "jpg";
break;
case "image/pjpg" :
$roz = "jpg";
break;
case "image/pjpeg" :
$roz = "jpg";
break;
case "image/png":
$roz = "png";
break;
case "image/gif":
$roz = "gif";
break;
}
Pozdrawiam Adam
I witam wszystkich na nowej grupie.
Technical Details
Message-ID:
<3B821353.D31639F6@tenbit.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!news.ipartners.pl!news.internetia.pl!news.tpi.pl!not-for-mailReferences:
<3b7e345f$1@news.bsi.net.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.man.poznan.pl!news.ipartners.pl!news.internetia.pl!news.tpi.pl!not-for-mail From: Adam Major <amajor@tenbit.pl> Newsgroups: pl.comp.lang.php Subject: Re: rysunki i pliki w bazie Date: Tue, 21 Aug 2001 09:52:51 +0200 Organization: tp.internet - http://www.tpi.pl Lines: 93 Message-ID: <3B821353.D31639F6@tenbit.pl> References: <3b7e345f$1@news.bsi.net.pl> NNTP-Posting-Host: pa106.bydgoszcz.cvx.ppp.tpnet.pl Mime-Version: 1.0 X-Trace: news.tpi.pl 998380278 23721 213.76.48.106 (21 Aug 2001 07:51:18 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: 21 Aug 2001 07:51:18 GMT X-Accept-Language: pl,en X-Mailer: Mozilla 4.74 [en] (Win98; U) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit