Többen jeleztétek, hogy a Zip-eket nem tudjátok kezelni (az állományok jók, teszteltem!). Linuxon lett tömörítve, használd a 7zip (7zip.org) nevű programot hozzá.

Fájlok tárolása MySQL adatbázisban, PHP segítségével

Vissza a taglistához: /tag/MySQL nyomtatóra küldöm a Fájlfeltöltés SQL adatbázisba PHP-vel nevű oldalt A felvétel ideje: 2008-08-30 15:12:30 Az utolsó módosítás ideje: 2008-08-30 15:01:17 Találatok Cimkére: 3576; Oldalra: 6947
A leírás ízelítőt ad az adatbázisban történő fájl tárolás, lehetőségeiről, veszélyiről, és egy használható példaprogramot tölthetünk le a témakörrel kapcsolatban.

Az adatbázisban tárolt fájlok előnye:

  • érzékeny adatokat könnyebben tárolhatunk adatbázisban, bár ez elég hülyén hangzik, de a tényleges egyszerűséget az különböző titkosítási algoritmusok használatában látom.
  • Ha már megvan a struktúra, a feltöltött adatokban egyszerű keresni.
  • Fájlméret vagy típus összesítéseket, SQL kéréseket könnyű megírni
  • Maga a művelet nem tart tovább mint egy fájl átmásolása egyik helyről a másikra (Cserébe viszont..)
  • Mivel az adatbázishoz (SQLite-hoz nem :) jogosultságunknak kell lennie, ezért effektíve adat védelmet is megvalósít.
  • Fájl szinten is korlátozhatjuk, akár 1-1 kép megjelenítését.

30rt080830025729.jpg

Hátrányok a fájlrendszeren tárolt fájlokkal:
  • Akár indokolatlanul növesztjük az adatbázisunk méretét
  • A megnövekedett adatbázis komoly teljesítmény problémákat okozhat
  • Ha nincs adatbázis kapcsolat, ugrik a mutatvány, míg a fájlrendszer általában ezekben az esetekben is elérhető
  • Ha több nagyméretű adatot kezelgetünk, számolhatunk azzal, hogy elérjük a memória korlátokat
  • A fájlok megjelenítéséhez gondoskodnunk kell a megfelelő fejléc (header) információkról is
  • Néhány kéréssel növesztjük az oldalunk általános terhelését
  • Nehezebb elérés és fájl kezelés, PHP programnyelven kívül SQL ismeret is kell.

A fájlrendszeren tárolt és adatbázisban tárolt bináris fájlokra is jellemző:
  • Mindkettő magában hordozza a fájlfeltöltéskor felmerülő biztonsági kérdéseket.
  • Bármely fájlba beleplántálható kártékony kód, anélkül, hogy ezt észrevennénk, ezt lefuttatva szia van a rendszernek.
  • Bárhol tároljuk a fájlokat, az a merevlemez helyünket is érinteni fogja.

Alapszabály fájl kezeléskor és minden más felhasználótól kapott adathoz:
  • Ne bízz meg a felhasználótól érkező adatokban, minden bejövő adatot komolyan ellenőrizni kell.
  • Csak akkor tárolj fájlokat publikus szerver területen, ha tényleg elérhetővé akarod tenni a világ számára. Ha nem tedd olyan helyre ahol User csak megfelelő kontroll alatt éri el.
  • Képfájlokat méretezd át, vagy forgasd el, így néhány beleplántált szkriptet megúszhatsz.
  • Mindig ellenőrizd le a TMP mappában lévő fájl méretét, nevét, típusát hátha menet közben éltre kelt, megváltozott.
  • Szűkítsd a bementett tágítsd a kimenetet. (Korlátozd a feltölthető fájlok típusát, méretét)
  • szia_tárhely= (fájlméret * user * (feltöltések száma * naponta)) ? „Szia Tárhely” : „Hello Big MySQL DB”;
  • És az utolsó szabály: vissza az elsőre :) -> goto 1.

A feltöltés és az SQL menete:
  • Adatbázis tábla elkészítése
  • Szokványos űrlap; metódus: Post; enctype:multipart/form-data;
  • Bejövő adatok tornasorba rendezése
  • Adatok beoltása az táblába
  • Adat megjelenítés

A példafájl letölthető és szabadon használható, saját felelőségre. Csak Jpg kiterjesztésű fájlt fogunk tudni feltölteni.


Fájlok: (db_upload.zip)

  • config.php - Beállítások
  • sql.php - MySQL kapcsolat
  • urlap.php - űrlap megjelenítés
  • feltoltes.php - a feltöltés végzi
  • lista.php - legenerálja a képek listáa
  • fajl_keres.php - kiszolgálja az adott id-re vonatkozó képet
  • db.txt - adatbázis tábla struktúra
  • readme.txt - telepítési útmutató

Beállítások menete:
  • Hozzuk létre az adatbázist, majd a db.txt tartalmával hozzuk létre a táblánkat (bin_fajlok)
  • Állítsuk be a sql.php-ben a kapcsolódási adatokat
  • az urlap.php hívásával feltölthetünk, jpg fájlokat

Működés:
  • ha nincs fájl akkor a feltoltes.php visszadob az űrlapra
  • Ha rendesen kitöltöttük az űrlapot akkor az adatokat beírjuk az adatbázisba, majd nyomunk egy listát a képfájlokról (lista.php - listát generál, fajl_keres.php kiszolgálja az adott id-re vonatkozó kérést és megjeleníti a képet)

A képeket ezután nem útvonal alapján határozzuk meg, hanem egy php fájl hívással és azonosító küldésével.
  • pl.: <img src="fajl_keres.php?id=1" title="" alt="" border="0" />


Néhány plusz funkció a táblákban:
  • module és module_id - egy modulhoz köthető a fájl
  • cimke - címkével kategorizálható
  • nev - egy név mező ami megjelenhet leírásként
  • title - img title tag
  • alt - img alt tag
  • kategoria - plusz információval a képeket kategóriába rendezhetjük
  • bin_adat - bináris adataink itt tárolódnak
  • filename - a fájl neve módosítva, weben használható formában
  • filesize - fájlunk mérete
  • filetype - fájlunk típusa
  • extension - fájlunk kiterjesztése
  • activate - 0 vagy 1; ha 1 akkor aktív a kép, listázható
  • sort - a rendezési sorrend ORDER BY sort ASC|DESC

Persze az adatokat (táblát) péppé lehetne normalizálni, de a példa az egyszerűségre törekszik.

Cikkhez tartozó letöltés(ek):

fájl_nev: archivehkqx090506084022.zip | pub_nev: db_upload_base64.zipdb_upload_base64.zip
Kép fájlfeltöltés adatbázisba PHP, MySQL
97318 Byte
application/x-zip
fájl_nev: archive2vz7080830024008.zip | pub_nev: db_upload.zipdb_upload.zip
Fájl feltöltés MySQL adatbázisba, PHP segítségével, Példaprogram.
96918 Byte
application/zip

Bejegyzés küldése


* Üzenet tárgya:


* Neved:


Email (csak ha választ szeretnél):


URL/Honlap (ha szalonképes akkor megjelenik):


* Üzeneted (Tudni kell kérdezni):

* Captcha:
 
  • A *-gal jelölt mezők kitöltése kötelező
  • Az e-mail címben megjelenő adat nem fog megjelenni
  • Az üzenet adminisztrátori jóváhagyásra kerülnek
  • A speciál karakterek használata tiltva van a formon
DTBDTB a beküldés dátum: 2009-05-06 09:03:25

Nem kerül bele az adatbázisba...

Tisztelt Szerző!

Sajnos nálam nem kerülnek bele az adattáblába a képek, így a lista nem jeleníti meg csak az alt szöveget...

Tudna nekem segíteni?

---------------
Opendir:

Konkrétan az adatbázisba bekerülnek az adatok, de escapelve.

Elérhető egy újabb változata, ami az adatbázisba kerülő adatokat base64_encode utasítással alakítja át, így 33%-kal több adatot tárol le, de biztosabb a működése.
ubuntu,linux

Blogmarkok

Simple Chat

Egyszerû szöveges fájl alapú PHP chat progi.

Showcase of Interesting Navigation Designs

Érdekes menü, navigáció megvalósítások.

Több mint 306 magyar Linkgyûjtemény

Érdekes gyûjtemény magyar katalógusokról, linkgyûjteményekrõl, cikk katalógusokról. PR érték és alkalmazás szerinti megjegyzéssel. Igényes munka és használható forrás, weblap népszerûsítéshez. Az egyik legjobb hazai publikus SEO lista.

AdMax SEO Toolbar

Firefox kiterjesztés SEO eszközként.

Identica PHP

Identi.ca mikroblog szolgáltatáshoz PHP class, egyszerû használattal.

Twitter OAuth PHP

PHP Oauth részletes leírás, avagy hogyan használhatod távolról a Twittert.

Lightweight PHP Picasa API Version 3.0

PHP osztály Picasa képgaléria elemeinek a kezelésére. RSS-bõl feldolgozza az albumokat és képeket.

Secure backup, sync and sharing made easy.
Kövess a Twitteren

Top5 webes fájlmenedzser

Top5 webes fájlmenedzserA gyűjtésben szereplő elemek weben keresztül valósítanak meg fájlkezelést. A kiválasztásnál kiemelt szempont volt az egyszerű deszktop jellegű szoftverektől megszokott kényelem, a biztonság és a többfelhasználós beállítási lehetőség, egyszerű integrálhatóság és a felhasználhatósági (licenc) szempontok.

2009-5 kedvenc jQuery pluginje

2009-5 kedvenc jQuery pluginje2009-ben is vannak kedvenc jQuery plugin-jeim. Ezt szeretném veletek megosztani.
Úgy érzem kicsit változtam, a plugin választás a funkcionalitáson túl egy picit a parasztvakítás is bejátszik.

(Parasztvakítás (PW): olyan effektek aminek a gyakorlatban szinte semmi haszna nincs, de szemet gyönyörködtető)

Nem..

10 hasznos FireBug kiterjesztés

10 hasznos FireBug kiterjesztésHasznos FireBug képességeit kiterjesztő pluginek. Bár a FireBug önmagába is egy rendkívül jól használható Firefox kiterjesztés. De elérhető hozzá néhány nagyon profi kütyü, ami sokszor önálló funkciót valósít meg, de az esetek nagyobb részében a FirBug képességeit combosítják ki.

Ha még nem ismernéd a

50 Hasznos Firefox kiterjesztés Linuxra

50 Hasznos Firefox kiterjesztés LinuxraKedvenc Linuxon is működö Firefox kiterjesztések, mindennapos felhasználásra és webfejlesztőknek.

A addon-ok működnek Windows-os rendszereken is, de a cikk kifejezetten a Linuxra elérhető és hasznos Firefox kiterjesztésekből szemezget.

A Firefox 3.0 megjelenésekor már volt egy

350 hasznos Gimp effekt, Plugin, Script-Fu

350 hasznos Gimp effekt, Plugin, Script-FuHasznos pluginek, Script-fu-k, effektekkel, technikai megoldások gyűjteménye Gimp 2.6.X verziójához.

A cikknek célja az, hogy egyszerű megoldást adjon Gimp-hez, pluginek beszerzésére.

Szerencsére vannak olyan önzetlen projektek ahol összegyűjtik számunkra ezeket a nélkülözhetetlen eszközöket. Így sikerült összehozni 5 bejegyzésben..

Szoftverek

ArtH2O Blog tartalmából:

PHP Twitter Codeigniter OAuth

Codeigniter Twitter OAuth részletes leírás2010 Augusztus végétől már csak OAuth-on keresztül lehet bejegyzéseket küldeni a Twitterre illetve a hitelesítés ezen keresztül megy. Sok megoldás létezik a dologra, de mindegyik eléggé nyakatekert és nem igazán akarnak működni.

Érdemes elolvasnod a cikket, ha néhány óra kísérletezés meg szeretnél úszni!



Felvéve: 2010-09-04, Utolsó módosítás: 2010-09-04
Twitter, CLASS, Codeigniter, MVC, PHP oauth, twitter, ci, php, social

Bővebben →

10 hasznos új Codeigniter lib

Hasznos Codeigniter Lib-ek 2010-bőlTöbb okból is szeretem a Codeigniter keretrendszert. Az egyik oka, hogy ezt választottam keretrendszerül az nem más mint az egyszerűség. A másik az, hogy nem kell feltalálni a kereket, mert szinte minden tud, amire nekem egy alap alkalmazásnál szükségem lehet. Biztonságos, gyors és egyszerűen tanulható, jól dokumentált, szerethető rendszer. De a bejegyzés nem erről szól, hanem néhány 2010-es hasznos Codeigniter Lib-ről.



Felvéve: 2010-08-27, Utolsó módosítás: 2010-08-28
Codeigniter plugin, Codeigniter, MVC, PHP codeigniter, lib, class, 2010

Bővebben →

Stílusos űrlap elemek

Nem egyŰrlap elemek stílusának a megváltoztatása JavaScript és CSS eszközökkelszerű minden űrlap elemnek stílust adni. Gyakorlatilag checkbox, select, radio, file elemeknek nagyon nem is lehet, vagy csak részben. Erre találtak ki egy érdekes technikát, ami a működés közben az eredeti HTML elemet elfedi és azt egy grafikai elemmel helyettesíti. pl.: Egy checkbox, vagy radio esetében 2 állapota van bekapcsolt és kikapcsolt. Ha lehet kerüljük ezeket a technikákat, mert nagyon böngészőfüggő a működésük. Ha lehet maradjunk az eredeti űrlap elemeknél és azt csinosítsuk.



Felvéve: 2010-08-17, Utolsó módosítás: 2010-08-17
űrlap-design, webdesign, Űrlapok-Form, jQuery form, design

Bővebben →

Térképes cég-és weblapkatalógus

Térképes cégkatalógus és weblapajánló weboldal a regionalisbank.infoMár régóta szerettem volna egy olyan oldalt, ami weblapkatalógusként működik, de kicsit másképpen közelíti meg a dolgokat, mint a jelenleg piacion lévő katalógusok. Egy ilyen újszerű kezdeményezésem volt a szintén Codeigniter alapú Twitt.hu, ami egyben linkrövidítő szolgáltatás is. De a sok jó tulajdonsága mellet, még mindig hiányoltam benne valamit. Ezt a plusz dolgot sikerült beleplántálnom a RegionalisBank.info cég-és weblapkatalógusba.



Felvéve: 2010-08-11, Utolsó módosítás: 2010-08-28
Google Maps, Google, CLASS, SQL, Codeigniter, MVC, PHP terkepes, ceg, ajanlas, webkatalogus

Bővebben →

Kép átméretezés és cache

Kép átméretezés Smarty sablononVan néhány hasznos Smarty plugin, ilyen a Thumb nevű bővítmény is. Nagyon sokáig nem fejlesztették, már azt gondoltam kihalt alóla a fejlesztés, de 2010-ben egy újabb változat jelent meg belőle. Smarty 2.6.X és PHP 5.X.Y verzióhoz.

A bővítménnyel a sablonon tudunk képméreteket legyártani és gyorsítótárazni.



Felvéve: 2010-07-30, Utolsó módosítás: 2010-07-30
Smarty, PHP smarty, image, thumb

Bővebben →