JavaScript Ajax überträgt nur einen Teil der Dateien meines Datei Fom[]

obilaner

Lt. Junior Grade
Registriert
Apr. 2011
Beiträge
389
Hallo.

Ich habe eine Funktion geschrieben die mehrere Dateien übertragen soll. Alles funktioniert auch soweit, aber es kommen im Ordner am Ende nur 20 Dateien von 221 Dateien an. Die Funktionen laufen fehlerfrei weiter.

Wenn ich die Länge des Formdata vor dem Ajax Aufruf überprüfe sind 221 Dateien korrekt drin.

Gleich in der PHP Datei jedoch nur noch 20.

Code JS:
Code:
$("#select_file").change(function(){
    var dateifeld = document.getElementById("select_file");
    var form_data = new FormData();
    var tmp = 0;

    for(var count = 0; count < dateifeld.files.length; count++)
    {      
        if(dateifeld.files[count].type.search('image') > 0)
        {
            form_data.append("stickers[]", dateifeld.files[count]);
        }  
        tmp++;
        image_number++;

    }
 

    alert(Array.from(form_data.keys()).length);

    var ajax_request = new XMLHttpRequest();
    ajax_request.open("POST", "upload.php");          
 
    ajax_request.addEventListener('load', function(event){
        $("#Stickervorschau").show();
        $.post("upload.php", {stickerpreview: "last"}, function(re){
            $("#Stickervorschau").html(re);
        });
       
    });

    ajax_request.send(form_data);

});

Code PHP:
Code:
<?php
session_start();
$temp = array();
if(isset($_FILES['stickers'])){
//echo "angekommen";
    
    include("../db.php");
    $newtmpdir = "tmp/".uniqid()."/";
    $_SESSION["count"] = $count($_FILES['stickers']['name']); // sind nur 20
    for($count = 0; $count < count($_FILES['stickers']['name']); $count++)
    {
        $extension = pathinfo($_FILES['stickers']['name'][$count], PATHINFO_EXTENSION);
        $filename = $newtmpdir."Sticker".$count.$extension;
        mkdir($newtmpdir, 0777);
        move_uploaded_file($_FILES['stickers']['tmp_name'][$count], $filename);
        
        $temp[$count] = $filename;
    }
    $_SESSION["lastupload"] = $temp;
    
    
}
if(isset($_POST["stickerpreview"])){
    foreach($_SESSION["lastupload"] as $bild){
        echo "<img class='stickerpreview' src='".$bild."'></img>";
    }
    echo $_SESSION["count"]; // sind nur 20
}
?>
 

Anhänge

  • Bildschirmfoto_2023-10-28_15-18-55.jpg
    Bildschirmfoto_2023-10-28_15-18-55.jpg
    123 KB · Aufrufe: 48
Zurück
Oben