Jquery, php dizi sorun ile Mutliple dosya yükleme

1 Cevap php

I'm trying to make a multi file uploader.
I'm using "Multiple File Upload Magic With Unobtrusive Javascript"

Dosyaların hiçbiri yükleyin. Bir diziye dosyaları koyarak çünkü ben bu olduğuna eminim ve benim php (ben nasıl bilmiyorum) dizi işlemek için ayarlanmış gerekmez. Ben ne yapıyorum yanlış herhangi bir yardım?

Şimdiden teşekkürler! :)

JQUERY KOD


$(document).ready(function(){   
    var fileMax = 12;
    $('#element_input').after('<div id="files_list"></div>');
        $("input.upload").change(function(){
            doIt(this, fileMax);
        });
    }); 

    function doIt(obj, fm) {
        if($('input.upload').size() > fm) {alert('Max files is '+fm); obj.value='';return true;}
            $(obj).hide();
            $(obj).parent().prepend('<input type="file" class="upload" name="fileX[]" />').find("input").change(function() {doIt(this, fm)});
        var v = obj.value;
        if(v != '') {
            $("div#files_list").append('<div>'+v+'<input type="button" class="remove" value="" /></div>')
            .find("input").click(function(){
            $(this).parent().remove();
            $(obj).remove();
            return true;
        });
    }
};

HTML KOD


<form action="myPhpCodeIsBelow.php" method="post" enctype="multipart/form-data" name="asdf" id="asdf">
  <div id="mUpload">
    <input type="file" id="element_input" class="upload" name="fileX[]" />
    <input type="submit" value="Upload" />
  </div>
</form>

PHP KODU


$target = "upload/";
$target = $target . $_FILES['fileX']['name'];
$ok=1;

if(move_uploaded_file($_FILES['fileX']['tmp_name'], $target)) {
    echo "The file " . $_FILES['fileX']['name'] . " has been uploaded";
    } 
else {
    echo "There was a problem uploading" . $_FILES['fileX']['name'] . ". Sorry";
    }

1 Cevap

$_FILES dizisi aslında bu gibi görünüyor:

array (
  'fileX' => 
  array (
    'name' => 
    array (
      0 => '',
      1 => 'Temp1.jpg',
      2 => 'Temp2.jpg',
    ),
    'type' => 
    array (
      0 => '',
      1 => 'image/jpeg',
      2 => 'image/jpeg',
    ),
    'tmp_name' => 
    array (
      0 => '',
      1 => '/tmp/php52.tmp',
      2 => '/tmp/php53.tmp',
    ),
    'error' => 
    array (
      0 => 4,
      1 => 0,
      2 => 0,
    ),
    'size' => 
    array (
      0 => 0,
      1 => 83794,
      2 => 105542,
    ),
  ),
)

Yani kodunuzu daha bu gibi görünmelidir anlamına gelir:

foreach($_FILES['fileX']['name'] as $index => $name) {
    if(empty($name)) continue;

    $target = "upload/";
    $target = $target . $name;
    $ok=1;

    if(move_uploaded_file($_FILES['fileX']['tmp_name'][$index], $target))
    {
        echo "The file " . $name . " has been uploaded";
    } 
    else
    {
        echo "There was a problem uploading" . $name . ". Sorry";
    }
}

Ve daha iyi kodunuzu girinti öğrenmek gerekir!