Ékezetes fájlnévre mutató linkek
Sziasztok!
Van az oldalon egy fájlfeltöltés, ahol fel lehet tölteni fájlokat, ékezetteleníteni nem kéne, namost én pont úgy kezelem, mintha ékezet nélkül lenne, és működik. Simán megnyotja a .../files/egy ékezetes fájl.txt fájlt.
Szól ez ellen valami érv? hogy miért ne használjam?
Illetve ha azt mondjátok, hogy szól, akkor hogy kéne? Ami elsőre eszembe jut, hogy pl van a fent írt fájl, akkor apache mod_rewrite-al átirányitani mondjuk fajl.php?f=123, és van egy adatbázis bejegyzés, ahol 123 | .../files/egy ékezetes fájl.txt, viszont akkor hogy kéne kinézzen a fajl.php?
köszi
■ Van az oldalon egy fájlfeltöltés, ahol fel lehet tölteni fájlokat, ékezetteleníteni nem kéne, namost én pont úgy kezelem, mintha ékezet nélkül lenne, és működik. Simán megnyotja a .../files/egy ékezetes fájl.txt fájlt.
Szól ez ellen valami érv? hogy miért ne használjam?
Illetve ha azt mondjátok, hogy szól, akkor hogy kéne? Ami elsőre eszembe jut, hogy pl van a fent írt fájl, akkor apache mod_rewrite-al átirányitani mondjuk fajl.php?f=123, és van egy adatbázis bejegyzés, ahol 123 | .../files/egy ékezetes fájl.txt, viszont akkor hogy kéne kinézzen a fajl.php?
köszi
Szól
Ami a megoldást illeti, úgy kéne csinálni, hogy amikor feltöltődik a fájl, adsz neki valami kellően random nevet és a nevét eltárolod az adatbázisban. Ezt aztán teljes nyugalommal odaadhatod a böngészőnek. A PHP-s mókát én nem csinálnám, mert elesel az oprendszer sendfile és cache támogatásától, ergó fölöslegesen eszi a CPU-t a kiszolgálás.
Egy kicsit ezt kifejtenéd
Konkrétan ez érdekelne, hogy mit értesz ez alatt.
"elesel az oprendszer sendfile és cache támogatásától"
Semmi kód nem kell, csak egy picit bővebb fejtágítás, a többinek majd utánanézek! Köszi!
Sendfile
Az oprendszer file cache részben használható lesz számodra, ha PHP-ból szolgálsz ki, hiszen a fájl felolvasásakor bekerül a memóriába, de ha a fájllal bármiféle transzformációt is végzel, akkor már ez is részben bukta.
Köszönöm!
Utóbbi meg automatikusan "sendfile"-os lesz akkor?
Így van
szia, köszönöm a választ a
a lényeg az, hogy amikor az user letölti a fájlt, akkor az eredeti, ékezetes, szóközös fájlt töltse le.
ezt találtam:
http://www.zubrag.com/scripts/download.php
szóval pl lehetne igy csinálni: (?)
<a href=".../download.php?f=random_fajlnev.zip&fc=ékezetes fájlnév">link</a>
de ilyenkor hogy is kéne? fc=ékezetes fájlnév nyilván kodolva kell legyen a linkben. Akkor ebbe a kodba bele kéne irni, hogy a $_GET['fc']-t kodoljam vissza, vagy az automatikus?
de a lényeg, hogy ez a kód kb. jó lesz nekem, igaz?
Mint írtam
akkor tudnál valami linket
Nem
Ha a uses az admin felületen feltölt egy fájlt, generálsz egy véletlenszerű md5 hasht és ezen a néven mented el a fájlt. Az adatbázisodba beírod a hasht és az általa adott nevet is, majd amikor listázni kell, nem mappát olvasol, hanem adatbázist.
Ha csak egy md5 hasht
Elmélet
nem az a baj, hogy hogy
vagy egy "Kis Béla.pdf"-em, addig világos, hogy elmentem adatbázisba, hogy
vw9586zw4m586vb.pdf | Kis Béla.pdf
vagy lehet ez akár
kis_bela.pdf | Kis Béla.pdf is
csak milyen linket teszek ki utána?
mert nyilván <a href="kis_bela.pdf">Kis Béla</a> működik, csak akkor az ékezet nélküli fájlt fogja letölteni
azt hogy teszem ki neki, hogy ékezetesen tudja letölteni a fájlt?
Kiszolgálás
Sendfile-al így? :)
senfile
Utólag jobban átgondoltam, lehet mégse teljesen jót találtam, de ha nem is jó teljesen a kód, akkor csak nézzük ezt:
Nem!
Gyerekes dolog az offolás és
Köszi a segítséget, de tényleg, ha pedig mégse ez, ígérem nem kommentelek megint! :)
Nem!
mod_xsendfile
továbbra is köszönöm a
1. <a href="download.php?file=vw9586zw4m586vb.pdf">Kis Béla</a>
ez itt az ékezet/szóköz nélküli hash, ez világos
# $result = db_query('SELECT newname, origname, mimetype FROM files WHERE origname = "%s"',
# $_GET['file']);
tehát itt a $_GET['file'] is az
de a query-ban origname van, akkor ez elírás, és a where-ben newname kéne legyen?
bit.ly megoldás
Az ékezetes fájlneveket is gyönyörűen kezeli.
Tehát feltöltöm az ékezetes fájlt, ott php-val generálok neki egy bit.ly url-t, és azzal már azt csinálsz amit akarsz, pl eltárolhatod mysql táblába.
így kell gondozni: http://davidwalsh.name/bitly-php
Kérdések
Re: Kérdések
Ez a saját megoldásom, nekem ez egyszerű volt, és még eddig bevált. Mivel nálunk a hozzáféréseket is én menedzselem, így nem volt kérdés, hogy hozzáférnek-e.
Mellesleg ha a twitternek ez az url kezelés megfelel akkor nekem is.
(Még annyit, hogy a tinyurl nekem nem kezelte az ékezetes fájlneveket.)