Yükleme Görüntü Çalışma değil

2 Cevap php

Ben birden fazla dosya yükleyebilirsiniz bir PHP komut dosyası yazmak çalışıyorum.

for($i=0;$i<count($_FILES['uploadimg']['name']);$i++){
    $name = $_FILES['uploadimg']['name'][$i];
    $type = $_FILES['uploadimg']['type'][$i];
    $filepath = $_FILES['uploadimg']['tmp_name'][$i];
    $size = getimagesize($filepath);
    $img = file_get_contents($filepath);

    //insert into database
}

Sorun değişkenleri gerektiği şekilde doldurulan olmamasıdır.

(echo s ve var_export s ile veritabanı kodunu değiştirerek): Ben bir jpeg "resim.jpg" yüklediğinizde, ben değişkenleri aşağıdaki değerlere sahip olduğunu keşfettiler

$name = 'image.jpg'; // good
$type = ''; // not good
$filepath = ''; // not good
$size = false; // not good
$img = false; // not good

Ben $size gerçekleştirmek ve $img $filepath geçerli bir dosya yolu olarak bağımlı olduğuna dikkat etmelisiniz.

Herkes ben ne yanlış gidiyor ya da ne eksik içine bazı bilgiler sunabilir? Ben şimdi bir gün için kodu ile oynamak oldum, ve bir çözüm ile gelip olamaz.

Update:

print_r($_FILES) 3 resim getirileri üzerinde:

Array (
    [uploadimg] => Array (
        [name] => Array (
            [0] => test1.jpg
            [1] => test2.jpg
            [2] => test3.jpg
        )
        [type] => Array (
            [0] => image/jpeg
            [1] =>
            [2] => image/jpeg
        )
        [tmp_name] => Array (
            [0] => /tmp/phpkC6f2F
            [1] =>
            [2] => /tmp/phpgFrPl8
        )
        [error] => Array (
            [0] => 0
            [1] => 1
            [2] => 0
        )
        [size] => Array (
            [0] => 238906
            [1] => 0
            [2] => 237308
        )
    )
)

Ben o zaman bu resim çok büyük olduğu anlamına gelir varsayalım miyim?

2 Cevap

This question / answer yardımcı olabilir.

Edit - Bu bir dosya boyutu sorunu benziyor. Hem çalıştı dosyalar yaklaşık 1.8 Mb boyutları var ve varsayılan PHP 2 Mb bir dosya yükleme sınırı vardır. Ben sadece bu konuda Windows açıdan size tavsiye verebilir, ama ben PHP.ini arıyor olurdum increase upload_max_filesize and perhaps post_max_size settings .

Edit 2 - Bir PHP.net bölüm bu lists the error codes for uploading vardır. Sen bir 1 alıyoruz:

UPLOAD_ERR_INI_SIZE

Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.

O benim ilk düzenleme söylediklerini eşleşir.

Tüm bu dosyaları aynı türü var mı? Bir kaç dosya yüklerken bize bir var_dump değişkenlerin verebilir misiniz? Tüm yüklemeler için değişkenler boş veya sadece bazı mısınız?

Örneğin, bu kod:

<?php
print_r($_FILES);
?>

<html><body>
<form action="test.php" method="post" enctype="multipart/form-data">
    <input name="upload[]" type="file" /><br />
    <input name="upload[]" type="file" /><br />
    <input name="upload[]" type="file" /><br />
    <input type="submit" value="Upload" />    
</form>
</body></html>

Bu çıktı verir:

Array (
    [upload] => Array (
        [name] => Array (
            [0] => IMG_0005.jpg
            [1] => IMG_0249.jpg
            [2] => IMG_0007.JPG
        )
        (...snip...)
        [size] => Array ( 
            [0] => 1776529 
            [1] => 1902522 
            [2] => 798008 
        ) 
    ) 
)

Her dosya için $_FILES['name']['error'] kontrol etmeyi unutmayın.