v2.5.2
Giriş yap

php ini max upload (izin verilen değeri aştıysa) uyarı verdirmek.

kartal
265 defa görüntülendi

Ürüne çoklu resim yüklerken hep aynı resimlerle çalışıyordum birgün farklı resimler denk geldi
birkaçtenesini yüklemek istedim ama bir baktım ki
javascript de

let f = event.target.files;

	if(f.length){
	
		let data = new FormData();
		for (const [key, file] of Object.entries(f)) {
            data.append("img[]",file);
		}
		
		//sonra ajax işlemi
		//burada files değerlerini konsolda görüyorum
    }
    
    

Ancak ajax işlemi için gönderdiğim dosyada

    var_dump($_FILES);
    var_dump($_FILES[img]);
    
    //Aldığım sonuç kocaman bir empty :)
    //Bu arada kocaman empty nasıl olduysa :))

Resimleri tekli yüklerken php dosyasında değeri alabiliyordum.
Acaba formda multiple değil mi yada name="img[]" yerine name="img" mi
diye baktım problem yoktu.

Aklıma eski çalıştığım resimlerle denemek geldi bir baktım ki o resimler yükleniyor.
Hemen boyutlarına baktım ve düşüktü.
php ini ile alakalı olduğunu anladım ama anlamadığım php neden uyarı vermedi.

Sorum şu :
php ini den max izin verilen değeri nasıl alıp php dosyasında kontrol işlemi yaparım.
php ini ye bakıp manuel değilde php de böyle bir mekanizma yokmudur.

Cevap yaz
Cevaplar (1)
h4ckdr0
498 gün önce

Merhaba,

PHP'de ini_get() fonksiyonunu kullanarak php.ini dosyasındaki bir ayarın değerini alabilirsiniz.
Örneğin, upload_max_filesize ayarının değerini almak için aşağıdaki kodu kullanabilirsiniz:

$upload_max_filesize = ini_get('upload_max_filesize');

Bu ayarın değerini kontrol etmek için ise aşağıdaki kodu kullanabilirsiniz:

if ($_FILES['img']['size'] > $upload_max_filesize) {
    // Dosya boyutu izin verilen değeri aşıyor
    // Uyarı verin veya işlemi iptal edin
}

Dikkat etmeniz gereken bir nokta ise upload_max_filesize ayarının MB cinsinden değerini döndürdüğüdür.
Örneğin, ayarın değeri 2M ise döndürülen değer 2 olacaktır. Bu yüzden dosya boyutunu kontrol ederken MB cinsinden değil, byte cinsinden kontrol etmeniz gerekir.

Ayrıca php.ini ayalarını da ini_set() ile de değiştirebilirsiniz!

Umarım yardımcı olabilmişimdir. İyi çalışmalar!