PHP ile kullanıcının siteye dosya yüklemesini sağlayabiliyoruz bunu yaparken en çok kullanılan ve en basit metot post metodu ile sunucuya dosya yükletmek. Basit bir html form ile kullanıcın kendi bilgisayarından seçtiği bir dosyayı sitemize yüklemesini sağlayabiliriz.PHP de güvenlik tehditlerinin en çok yaşandığı durumda dosya upload işlemidir. Upload işlemi ile dosyalar denetlenmeden sunucuya yüklenirse ciddi sorunlara yol açabilir.Upload işleminde bir diğer sıkıntı ise büyük dosyalar yüklenerek sunucunun kilitlenmesi. Bu durumu önlemek için php post metodu ile yüklenecek dosyanın boyutuna sınır koymuştur bu sınır php.ini (php ayar dosyası) dosyasında upload_max_filesize değeri ile belirlenir.
Upload_max_filesize değeri ön tanımlı olarak 2mb olarak belirlenmiştir.Bu değer çoğu zaman kullanıcıya az gelir. Günümüzde fotoğraf makineleri ile çekilen resimler 3-5 mb arasında oluyorlar.Kullanıcı çektiği bir resmi siteye yüklemeye çalıştığı zaman 2mb sınırı ile karşılaşıyor ve bu hoş bir durum olmuyor.
Bu durumdan kurtulmak için iki yöntemden bahsedeceğim birinci yöntem sunucu yönetimini elinde barındıran kullanıcılar için .
PHP.ini dosyasını düzenlemek
php.ini dosyası PHP nin ayarlarının bulunduğu dosyadır. Bu dosya ile upload_max_filesize değerini değiştirebiliriz. Bu işlemi yapabilmemiz için sunucumuza SSH bağlantısı ile bağlanmamız gerekiyor.Eğer localhost ile çalışıyorsanız direk konsoldan komutları girebilirsiniz. Bu işlemleri yapabilmeniz için sunucuda root yetkinizin olması gerekiyor. SSH bağlantımızı kurduktan sonra root yetkisine erişmek için “su” komutunu verin ve root şifresini yazıp enter a basın. root şifresini bilimiyorsanız yada belirlemediyseniz her komutun başına “sudo” eklemeniz gerekiyor sudo ekledikten sonra sizden şifre girmezin istenecek aktif kullanıcının şifresini yazıp enter a basın.
Şimdi php.ini dosyamızın konumunu görmek için
locate php.ini
Komutunu çalıştıralım .Buna benzer bir sonuç alacaksınız:
/etc/php5/apache2/php.ini /etc/php5/cli/php.ini /usr/share/php5/php.ini-development /usr/share/php5/php.ini-production /usr/share/php5/php.ini-production-dist /usr/share/php5/php.ini-production.cli
Sonrasında php.ini dosyasının içeriğini değiştirmek için konsol üzerinde çalışan bir metin editörü olan nano programını kullanacağız.
nano /etc/php5/cli/php.ini
Bu komut ile “/etc/php5/cli/php.ini” yolundaki php.ini dosyasının içeriği açılmış olacak. php.ini dosyasının içinde bir çok ayar mevcut upload_max_filesize değerini bulmak için “Ctlr+w” tuş kombinasyonuna basarak arama yapabiliriz.Arama kısmına upload_max_filesize yazıp istediğimiz değere kolayca ulaşabiliriz. buradaki 2M değerini 8M yada 10M gibi değerlerle değiştirebilirsiniz.
İstediğiniz gibi değişimi yaptıktan sonra “Ctrl+x” ve “y” yi tuşlayarak dosyayı kaydedin.Ayarın uygulanması için apache sunucusunu yeniden başlatılmalı bunun için
service apache2 restart
komutunu yazıp enter a basmanız yeterli.
.htaccess dosyası ile bilirleme
Eğer sunucuya erişiminiz yoksa .htaccess dosyası ile upload_max_filesize değerini belirtebilirsiniz. Host unuzda bulunan .htaccess dosyasını n içerisine aşağıdaki satırları ekleyecek upload limitinizi düzenleyebilirsiniz.
#Upload limiti Blirle php_value post_max_size 10M php_value upload_max_filesize 10M
Allah razı olsun 🙂 1 saattir arıyordum 🙂
teşekkürelr
Bunu if ile nasıl kontrol edebiliriz? Hatayı bastırmak adına?
https://www.php.net/manual/tr/features.file-upload.errors.php Bu sayfayı inceleyebilirsiniz.