v2.5.2
Giriş yap

Resim Upload Sorunu [Çözüldü]

coder
613 defa görüntülendi

Merhaba.

Aşağıdaki fonksiyonla resim yüklemeye çalıştığım zaman resimdeki hatayı alıyorum.
Bunun çözümü nedir?

Çözümü
İnput name'i dizi olarak değilde normal olarak post etmek gerekiyor.
Yani name="dosya[]" değil, name="dosya" şeklinde olacak.

index.php

<form action="sonuc.php" method="post" enctype="multipart/form-data">
    Dosya Seçin: <br>
    <input type="file" name="dosya[]" multiple> <br>
    <button type="submit">Yükle</button>
</form>

sonuc.php

<?php

function yukle($dosya, $boyutLimit = 1, $dosya_uzantilari = null)
{
    $sonuc = [];
    if ($dosya['error'] == 4){
        $sonuc['hata'] = 'Lütfen dosyanızı seçin.';
    } else {
        
        if (is_uploaded_file($dosya['tmp_name'])){
    
            $uzanti = explode('.', $dosya['name']);
            $uzanti = $uzanti[1];
    
            $gecerli_dosya_uzantilari = $dosya_uzantilari ? $dosya_uzantilari : [
                'image/jpeg',
                'image/png',
                'image/gif'
            ];
    
            $gecerli_dosya_boyutu = (1024 * 1014) * $boyutLimit;
    
            $dosya_uzantisi = $dosya['type'];
    
            if (in_array($dosya_uzantisi, $gecerli_dosya_uzantilari)){
    
                if ($gecerli_dosya_boyutu >= $dosya['size']){
    
                    $ad = uniqid();
                    
                    $yukle = move_uploaded_file($dosya['tmp_name'], 'upload/' . $ad . '.' . $uzanti); 
    
                   if ($yukle){
                       $sonuc['dosya'] = 'upload/' . $ad . '.' . $uzanti;
                   } else {
                    $sonuc['hata'] = 'Bir sorun oluştu ve dosyanız yüklenemedi.';
                   }
    
                } else {
                    $sonuc['hata'] = 'Yükleyeceğiniz dosya en fazla 3MB olabilir.';
                }
    
            } else {
                $sonuc['hata'] = 'Yüklediğiniz dosya geçerli bir formatta değil.';
            }
    
        } else {
            $sonuc['hata'] = 'Dosya yüklenirken bir sorun oluştu.';
        }
    }
    return $sonuc;
}


$sonuc = yukle($_FILES['dosya']);
if (isset($sonuc['hata'])){
    echo $sonuc['hata'];
} else {
    echo '<a href="' . $sonuc['dosya'] . '">Dosyayı görmek için tıklayın!</a>';
}

echo "<pre>";
print_r($_FILES);

?>
Cevap yaz
Cevaplar (2)
miyachung
1444 gün önce

Çoklu halini de bırakalım

<pre><code>

function yukle($dosya, $boyutLimit = 1, $dosya_uzantilari = null)
{

$sonuc = [];
if ($dosya['error'] == 4){
    $sonuc['hata'] = 'Lütfen dosyanızı seçin.';
} else {
    $say = count($dosya['name']);

    for($i = 0; $i < $say; ++$i){
      
        if (is_uploaded_file($dosya['tmp_name'][$i])){

            $uzanti = explode('.', $dosya['name'][$i]);
            $uzanti = $uzanti[1];
    
            $gecerli_dosya_uzantilari = $dosya_uzantilari ? $dosya_uzantilari : [
                'image/jpeg',
                'image/png',
                'image/gif'
            ];
    
            $gecerli_dosya_boyutu = (1024 * 1014) * $boyutLimit;
    
            $dosya_uzantisi = $dosya['type'][$i];
    
            if (in_array($dosya_uzantisi, $gecerli_dosya_uzantilari)){
    
                if ($gecerli_dosya_boyutu >= $dosya['size'][$i]){
    
                    $ad = uniqid();
                    
                    $yukle = move_uploaded_file($dosya['tmp_name'][$i], 'upload/' . $ad . '.' . $uzanti); 
    
                   if ($yukle){
                       $sonuc['dosya'][] = 'upload/' . $ad . '.' . $uzanti;
                   } else {
                    $sonuc['hata'] = 'Bir sorun oluştu ve dosyanız yüklenemedi. Dosya Adı: '.$dosya['name'][$i];
                   }
    
                } else {
                    $sonuc['hata'] = 'Yükleyeceğiniz dosya en fazla 3MB olabilir. Dosya Adı: '.$dosya['name'][$i];;
                }
    
            } else {
                $sonuc['hata'] = 'Yüklediğiniz dosya geçerli bir formatta değil.Dosya Adı: '.$dosya['name'][$i];
            }
    
        } else {
            $sonuc['hata'] = 'Dosya yüklenirken bir sorun oluştu. Dosya Adı: '.$dosya['name'][$i];
        }
    }
    
    
}
return $sonuc;

}

$sonuc = yukle($_FILES['dosya']);
if (isset($sonuc['hata'])){

echo $sonuc['hata'];

} else {

foreach($sonuc['dosya'] as $key => $dosyaAdi){
    
    echo '<a href="' . $dosyaAdi . '">'.($key+1).'.Dosyayı görmek için tıklayın!</a><br />';
}

}

echo "<pre>";
print_r($_FILES);

</code></pre>

miyachung
1444 gün önce
Çoklu halini de bırakalım.

<pre><code>
function yukle($dosya, $boyutLimit = 1, $dosya_uzantilari = null)
{

$sonuc = [];
if ($dosya['error'] == 4){
    $sonuc['hata'] = 'Lütfen dosyanızı seçin.';
} else {
    $say = count($dosya['name']);

    for($i = 0; $i < $say; ++$i){
      
        if (is_uploaded_file($dosya['tmp_name'][$i])){

            $uzanti = explode('.', $dosya['name'][$i]);
            $uzanti = $uzanti[1];
    
            $gecerli_dosya_uzantilari = $dosya_uzantilari ? $dosya_uzantilari : [
                'image/jpeg',
                'image/png',
                'image/gif'
            ];
    
            $gecerli_dosya_boyutu = (1024 * 1014) * $boyutLimit;
    
            $dosya_uzantisi = $dosya['type'][$i];
    
            if (in_array($dosya_uzantisi, $gecerli_dosya_uzantilari)){
    
                if ($gecerli_dosya_boyutu >= $dosya['size'][$i]){
    
                    $ad = uniqid();
                    
                    $yukle = move_uploaded_file($dosya['tmp_name'][$i], 'upload/' . $ad . '.' . $uzanti); 
    
                   if ($yukle){
                       $sonuc['dosya'][] = 'upload/' . $ad . '.' . $uzanti;
                   } else {
                    $sonuc['hata'] = 'Bir sorun oluştu ve dosyanız yüklenemedi. Dosya Adı: '.$dosya['name'][$i];
                   }
    
                } else {
                    $sonuc['hata'] = 'Yükleyeceğiniz dosya en fazla 3MB olabilir. Dosya Adı: '.$dosya['name'][$i];;
                }
    
            } else {
                $sonuc['hata'] = 'Yüklediğiniz dosya geçerli bir formatta değil.Dosya Adı: '.$dosya['name'][$i];
            }
    
        } else {
            $sonuc['hata'] = 'Dosya yüklenirken bir sorun oluştu. Dosya Adı: '.$dosya['name'][$i];
        }
    }
    
    
}
return $sonuc;

}

$sonuc = yukle($_FILES['dosya']);
if (isset($sonuc['hata'])){

echo $sonuc['hata'];

} else {

foreach($sonuc['dosya'] as $key => $dosyaAdi){
    
    echo '<a href="' . $dosyaAdi . '">'.($key+1).'.Dosyayı görmek için tıklayın!</a><br />';
}

}

echo "<pre>";
print_r($_FILES);

</code></pre>