Peki, teoride hayır. Bu sistemi istismar yolu olmamalıdır. Ancak, ben seni düşündüm olmayabilir size işaret etmek istiyorum birkaç şey vardır.
Dosyaları (uygun başlıkları ile readfile()
varsayarak) bir PHP dosyası üzerinden indirilen beri Birincisi, kullanıcılara ulaşılmaz bir yerde dosyaları yerleştirmek gerekir. Apache sunucularda, genellikle kolay yaklaşım sadece harici erişimi engellemek için ona "bütün inkar" ile yükleme dizine bir. Htaccess dosyasını koymaktır. Kullanıcıların ilk etapta harici dosyalara erişimi yoksa, o zaman (gerçi, depolama amaçlı yeniden adlandırma hala iyi bir fikirdir) gerçekten sorun neden dosya uzantıları hakkında herhangi bir endişe yok
Eğer sonunda çarpışmaları alabilirsiniz beri İkincisi, karma tarafından dosyaları adlandırma, böyle parlak bir fikir olmayabilir. Ne iki dosya aynı karma sahip olur? (Adını dosya içeriği hesaplanmış ve değilse) söz değil, karma bilgisayar yavaş tarafında biraz özellikle büyük dosyalar için vardır. Eğer veritabanına girişi saklamak beri, ben size (bir auto_increment alanı gibi) orada birincil anahtar çeşit varsayılabilir. Ben sadece çarpışmalarını önlemek için depolama için dosya adı olarak bu kimlik numarasını kullanarak öneriyoruz (alabilirsiniz, bilmiyorum durumda mysql_last_insert_id()
aracılığıyla son eki tarafından oluşturulan ID)
Tabii ki, her zaman dosya indirirken makineyi bulaşabilir virüsler içeren dosyaları ile ilgili sorunlar olabilir, ama bu sorunun kapsamı dışında gerçekten ve herhangi bir şekilde sunucu kendisini etkilemez.