SQL kullanarak dosya sistemine erişim

Son zamanlarda dosya sistemine erişmenin ve dosya ve klasörlerin varlığı veya içerikleri gibi değerli bilgileri almanın kullanışlı bir yolunu keşfettim. Bu, PHP'nin ` file_exists` fonksiyonuna alternatif olarak çok faydalı olabilir, çünkü dosya(lar)ın varlığı hakkındaki bilgiler, daha sonraki sıralama ve toplama fonksiyonları için sorguda kullanılabilir.


İlgili veritabanı kullanıcısının FILE ayrıcalıklarına sahip olması koşuluyla, komut kullanılabilir.

SELECT LOAD_FILE(*PFAD ZUR DATEI*)

Sorgu sırasında yalnızca bir dosyanın var olup olmadığını kontrol etmekle kalmaz, aynı zamanda içeriğini de okuyun.

Windows sistemlerinde, dosya yolundaki ters eğik çizgilerin uygun şekilde işaretlenmesi gerektiğine dikkat edilmelidir (örnek: C: \\ Windows \\ System32 \\ sürücüler \\ etc \\ ana bilgisayarlar). FILE ayrıcalığı verildiğinde, veritabanına erişim otomatik olarak dosya sisteminin geri kalanına erişim anlamına geldiğinden, güvenlik yönü de tamamen göz ardı edilmemelidir.

Yalnızca NULL değerlerin döndürülmediğinden emin olmak için, MySQL çalıştıran kullanıcının okuma haklarına sahip olduğundan emin olunmalıdır.

Büyük dosyalara erişmek için, 1 MB olarak ayarlanmış "max_allowed_packet" global özelliği artırılmalıdır.

mysql -u... -p...
set global max_allowed_packet = 1024 * 1024 * 512;
exit;

Artık (sunucuyu yeniden başlattıktan sonra) 512 MB boyuta kadar dosyalara erişebilirsiniz.

Geri