$ _FILES Boş olduğunda tam olarak ne anlama geliyor?

3 Cevap php

Ben bir PHP yükleme komut üzerinde çalışıyorum ve benim hata kontrolleri test ederken, ben bir 17MB TIFF dosya yüklemek için çalıştı. Bunu yaparken $ _FILES dizi boştur. Komut Ben JPEG dosyaları upload olduğunu, hangi yapmanız gerekenler için çalışıyor. Benim çözüm $ _FILES yükleme komut ile devam etmeden önce boş olup olmadığını test etmektir.

TIFF yüklenmesine denendiğinde $ _FILES boş olduğunu neden kimse açıklayabilir misiniz? $ _FILES Boş olup olmadığını kontrol etmek için benim çözüm, bir tamam biri mi?

Bu ayarları ile bir ilgisi var mı php.ini?

Just to clarify

I $_FILES aşağıdaki kullanarak boş olduğunu kontrol edildi:

if(empty($_FILES))
{
    die('$_FILES is empty.');
}

3 Cevap

Evet, upload_max_filesize TIFF dosya büyük olasılıkla aştığı, maksimum yükleme boyutunu kontrol eder. Varsayılan 2M olduğunu. Sen ile test edebilirsiniz:

echo ini_get("upload_max_filesize");

EDIT: Aslında, kesin nedeni her zaman> = upload_max_filesize olan post_max_size daha olasıdır: "POST verisinin boyu post_max_size büyükse, $ _POST ve $ _FILES superglobals boş."

Sen $_FILES['file']['error'] 0 eşit olup olmadığını görmek için kontrol etmelisiniz. Bu bir "başarı" göstermektedir.

Dosyalarınızı Dizi boşsa, o enctype dahil değil gibi, diğer bazı sorun nedeniyle olabilir.

var_dump($_FILES) yapıyor ve içeriğini inceleyen deneyin ...

EDIT: Ben php.ini dosyasında maksimum dosya boyutu ayarlayabilirsiniz biliyorum, ama bu size bir boş dosyaları dizi verecektir eğer ben emin değilim. Ben sadece bir hata alırsınız düşünüyorum.

Zaten yayınlanmıştır gibi, başarısız çünkü eğer boş. Ayrıca, böyle bir form öğesi için kontrol edin:

<input type="hidden" name="MAX_FILE_SIZE" value="-maxsizegoeshereinbytes-" />

Ekstra emin (aslında bir dizi var bir kere - btw, 'hata anahtarını kontrol' yazılan ekleyerek) olmak için, ayrıca boyutunu kontrol edebilirsiniz

if( $_FILES['file']['size'] > 0 ) {

}