Dosya adı dizin oluşturma?

4 Cevap php

Ben görüntülerin "büyük miktarda" kolları web sitesi oluşturma. Dosyaları örneğin depolamak için birden fazla dizin yöntemi kullanmaya karar verdim. images/efg/ed/ehj/efgedehjokjvdf2jn4.jpg

Ben dosya tekrarını önlemek için düşünüyorum geçerli timedate + bazı rasgele dize + md5 rasgele bir dize o = güzel bir çizgi almaktır. Çoğunlukla ben nasıl bu yolları oluşturmak için yöntem merak ediyorum? Nedir bu yönetmek için en iyi yol olacağını? Starter için 30.000 görüntüleri .. - Biz yaklaşık 10.000 bahsediyoruz

Birisi güzel ipuçları var ya da belki bazı kod paylaşmak Yani, bu harika olurdu! Eğer yardımcı olur :) Ah evet, ben bu proje için CodeIgniter'ı kullanıyorum?

4 Cevap

KISS:

date('Y')/date('md')/date('Hi')/md5($image).ext

Bu oldukça basit ve ben size herhangi bir dakika içinde 32k dosyaları aşmak için gidiyoruz sanmıyorum.


Eğer dakika gerekmez ve 8928 alt-dizinleri maksimum çalışabilir eğer sadece yapabileceği:

date('Y')/date('mdH')/md5($image).ext

İkinci seviyeye dizinleri birinci seviye ve ikinci 4 altıgen karakterler içine karma ilk 4 onaltılık karakter çevirin. Tam karma ile orada dosyayı saklayın.

Nasıl uuid kullanmaya ne dersiniz?

Ben resimlerim kendileri için bir uid kullanmak istiyorum, ancak dizindeki başına 32.000 dosyaların bir sınırı var değil mi? Eğer hala bazı dizin yapısını gerekiyordu bu yüzden hemen aşılacak.

Onlar yüklenen konum tarih ile yeni bir klasör yapmak ve bir veritabanı sütunu ve başka uid o tutamadı -> görüntülerin 32.000 günü geçmemek üzere gitmiyoruz.