Amma indi fikirləşirəm ki, belə serveri çox məşğul edəcəm, həm də səhv eləmirəmsə bu zaman download resume etmək olmayacaq.Bəs əgər mən hər user və hər userin hər faylı üçün ayrıda direktoriya açmış olsam, sonra gələcəkdə userlərin sayı 2 min, hərəsinin də 100 faylı və yaxud bundan artıq olsa bu qədər direktoriyalarla heç bir problem olmayacaq ?
Salam. Dediyiniz məsələni həll etmək olar. Amma uzun məsələdir, ondansa daha optimal yollar seçin.
Siz deyən məsələni
1. Apache .htaccess faylında müvafiq sətirlər əlavə etməklə elə etmək olar ki, sayt.com/userid/fileid/fayladi müraciətini edəndə apache onu sayt.com?uid=userid&fid=fileid&fname=fayladi kimi başa düşsün. Bunu etmək çətin deyil. Beləliklə fayla ulaşım təmin oldundu url-dəki FİD dəyişəni vasitəsilə.
2. Sonrakı mərhələ isə faylı yükləməyə təqdim edərkən id ilə yox fayl adı ilə təqdim etməkdir. Bu isə serverə əlavə güc salan prosesdir. Yükləmə prosesində file_get_contents("id.tip") verib daha sonra onu header-i faylin tipinə uyğun olan bir fayl şəklində echo vermək lazımdır. Bu zaman user faylın_adı.faylın_tipi kimi bir fayl yükləmiş olacaq.
Beləliklə bircə adi fayl yükləmə işinə görə bu qədər əziyyət çəkmiş olacaqsınız.
Mən sadəcə prosesi təsvir elədim, müvafiq kodları google-layıb tapmaq asandır. (Əsas həlledici olan .htaccess-ə yazacağınız apache kodudur.)
Salam. Eger fayllarin bir qovluqda saxlanaraq ve yuklenendede qovluq/fayladi.fayltipi kimi pramoy browserde yazaraq yuklenilmesini isteyirsinizse bu mumkun deyil. Ola biler ama eyni adli fayl olanda problem yaranacaq. Sizin dediyiniz kimi fayllari bir qovluqda saxlayib lakin yuklenende faylin heqiqi adi kimi yuklenmesi ucun mutleq fayli yukleyende yukle.php?fayl_id=$fayl_id bu wekilde yazib yuklenmelidi. Bunuda bele qura bilersiniz. Fayl servere yuklenende fayl qovluqda her hansi idle saxlanilsin. Sonra faylin idi.tipi, yani serverin qovlugundaki adi ve faylin esl adi mysql bazaya insert olunsun. Istifadeci fayli yukleyende ise fayl bazadaki adi ile kew qovluguna copy olunsun ve istifadeci kew qovlugu/faylin esl adi.faylin tipi linkine yonlendirilsin ordan yuklesin fayli. Kew qovlugundan da fayl teyin etdiyiniz vaxtdan sonra silinsin.