Erreur upload fichiers multiple

Résolu/Fermé
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021 - 25 nov. 2019 à 13:53
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021 - 25 nov. 2019 à 20:30
Bonjour , je suis entrain d'importer plusieurs fichiers a la fois mais j'ai rencontré plusieurs problèmes.
mon code php :

if (isset($_FILES["image"])) {
        $countImg = count($_FILES['image']['name']);
        
        $newImgName = array();
        $img = array();
        $actualName = array();
        $target_file = array();
        $imgextension = array();
        $actualSize = array();
        $image = array();

        for($i=0;$i<$countImg;$i++){
            $newImgName[$i] = bin2hex(random_bytes(10));
            $img[$i] = $_FILES["image"][$i];
        $actualName[$i] = $_FILES["image"]["tmp_name"][$i];
        $target_file[$i] = $target_dir . basename($_FILES["image"]["name"][$i]);
        $imgextension[$i] = pathinfo($target_file[$i], PATHINFO_EXTENSION);
        $actualSize[$i] = $_FILES['image']['size'][$i];
        var_dump(  $newImgName[$i]);
        var_dump( $img[$i]);
        var_dump( $target_file[$i]);
        var_dump($imgextension[$i]);
        }
        $legalImgExtensions = array("jpg", "png","PNG","JPG","JPEG","jpeg");
        $legalimgSize = 10000000; // 10000000 Octets = 10 MO
       
       
    }

    if (isset($_FILES["video"])) {
        $countVid = count($_FILES['video']['name']);
        $target_file_video = $target_dir . basename($_FILES["video"]["name"]);
        $newVidName = bin2hex(random_bytes(10));
        $videoextension = pathinfo($target_file_video, PATHINFO_EXTENSION);
        $legalVidExtensions = array("mp4");
        $legalSize = 100000000; // 10000000 Octets = 10 MO
        $VideoSize = $_FILES['video']['size'];
    }
 

    function conn()
    {
        try {
            $bdd = new PDO('mysql:host=localhost; dbname=meslek; charset=utf8', 'root', '');
            $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e) {
            die('Erreur : ' . $e->getMessage());
        }
        return $bdd;
    }

    
        $db = conn();
        for($i=0;$i<$countImg;$i++){
        if ( isset($_FILES["image"][$i]) and !empty($_FILES["image"][$i]) and in_array($imgextension[$i], $legalImgExtensions) and $actualSize[$i] <= $legalimgSize) {
            move_uploaded_file($_FILES["image"]["tmp_name"][$i], $target_dir  . '/' . $newImgName[$i] . '.' . $imgextension[i]);
            $image[$i] = $newImgName[$i] . '.' . $imgextension[$i];
            if(!isset($_FILES["video"])){
            $prep = $db->prepare("INSERT INTO images (titre_img) VALUES(?)");
            $prep->execute([$image[$i]]);
            }
        } else if( isset($_FILES["image"]) && !isset($_FILES["video"])){
            echo json_encode(false);
            @unlink($target_dir . '/' . $newImgName[$i] . '.' . $imgextension[$i]);
            die;
        }}




les erreurs:



A voir également:

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
25 nov. 2019 à 14:57
Bonjour,

Vu que tu ne nous indiques pas à quelles lignes correspondent les erreurs ... et que tu ne nous postes pas ton code complet... il sera difficile de t'indiquer quelles sont tes erreurs.

0
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021
Modifié le 25 nov. 2019 à 15:02
<?php

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true ");
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS, FILES');
header("Access-Control-Allow-Headers: X-Custom-Header, Origin, Content-Type , Authorisation , X-Requested-With");
header("Content-Type: application/json; charset=UTF-8 ");
header("Referrer-Policy: origin-when-cross-origin");
header("Expect-CT: max-age=7776000, enforce");
header('Strict-Transport-Security: max-age=16070400; includeSubDomains');
header('X-XSS-Protection: 1; mode=block');
header('X-Content-Type-Options: nosniff');
header('X-Frame-Options: SAMEORIGIN');


if (!isset($_FILES["video"]) && !isset($_FILES["image"])) {
    echo json_encode(false);
} else {


    $target_dir = "../../Meslek/MeslekCombat/src/assets/uploads/";
    
    if (isset($_FILES["image"])) {
     $countImg = count($_FILES['image']['name']);
        var_dump($countImg);
        $newImgName = array();
        $img = array();
        $actualName = array();
        $target_file = array();
        $imgextension = array();
        $actualSize = array();
        $image = array();

        for($i=0;$i<$countImg;$i++){
            $newImgName[$i] = bin2hex(random_bytes(10));
            $img[$i] = $_FILES["image"][$i];
        $actualName[$i] = $_FILES["image"]["tmp_name"][$i];
        $target_file[$i] = $target_dir . basename($_FILES["image"]["name"][$i]);
        $imgextension[$i] = pathinfo($target_file[$i], PATHINFO_EXTENSION);
        $actualSize[$i] = $_FILES['image']['size'][$i];
        var_dump(  $newImgName[$i]);
        var_dump( $img[$i]);
        var_dump( $target_file[$i]);
        var_dump($imgextension[$i]);
        }
        $legalImgExtensions = array("jpg", "png","PNG","JPG","JPEG","jpeg");
        $legalimgSize = 10000000; // 10000000 Octets = 10 MO
       
       
    }

    if (isset($_FILES["video"])) {
        $countVid = count($_FILES['video']['name']);
        $target_file_video = $target_dir . basename($_FILES["video"]["name"]);
        $newVidName = bin2hex(random_bytes(10));
        $videoextension = pathinfo($target_file_video, PATHINFO_EXTENSION);
        $legalVidExtensions = array("mp4");
        $legalSize = 100000000; // 10000000 Octets = 10 MO
        $VideoSize = $_FILES['video']['size'];
    }
 

    function conn()
    {
        try {
            $bdd = new PDO('mysql:host=localhost; dbname=meslek; charset=utf8', 'root', '');
            $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e) {
            die('Erreur : ' . $e->getMessage());
        }
        return $bdd;
    }

    
        $db = conn();
        for($i=0;$i<$countImg;$i++){
        if ( isset($_FILES["image"][$i]) and !empty($_FILES["image"][$i]) and in_array($imgextension[$i], $legalImgExtensions) and $actualSize[$i] <= $legalimgSize) {
            move_uploaded_file($_FILES["image"]["tmp_name"][$i], $target_dir  . '/' . $newImgName[$i] . '.' . $imgextension[i]);
            $image[$i] = $newImgName[$i] . '.' . $imgextension[$i];
            if(!isset($_FILES["video"])){
            $prep = $db->prepare("INSERT INTO images (titre_img) VALUES(?)");
            $prep->execute([$image[$i]]);
            }
        } else if( isset($_FILES["image"]) && !isset($_FILES["video"])){
            echo json_encode(false);
            @unlink($target_dir . '/' . $newImgName[$i] . '.' . $imgextension[$i]);
            die;
        }}

$t =isset($_FILES["video"])  and in_array($videoextension, $legalVidExtensions) and $VideoSize <= $legalSize;
        if (isset($_FILES["video"])  and in_array($videoextension, $legalVidExtensions) and $VideoSize <= $legalSize) {

            move_uploaded_file($_FILES["video"]["tmp_name"],  $target_dir  . '/' . $newVidName . '.' . $videoextension);
            $video = $newVidName . '.' . $videoextension;
            if(!isset($_FILES["image"])){
            $p = $db->prepare("INSERT INTO videos (titre_vid) VALUES(?)");
            $p->execute([$video]);
            }
        } else if($t == false and isset($_FILES["video"])){

            echo json_encode(false);
            @unlink($target_dir . '/' . $newVidName . '.' . $videoextension);
            die;
        }


        if (isset($_FILES["video"])  && isset($_FILES["image"])) {
            $pr = $db->prepare("INSERT INTO images (titre_img) VALUES(?)");
            $pr->execute([$image]);
            $pre = $db->prepare("INSERT INTO videos (titre_vid) VALUES(?)");
            $pre->execute([$video]);
        }


        $db = null;
        echo json_encode(true);
    
}

0
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021
25 nov. 2019 à 15:00
les lignes qui correspondent a l'erreur c'est indiqué dans la capture d'écran que j'ai partagé
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
25 nov. 2019 à 15:03
Bonjour,

Commence par faire un var_dump de ta variable $_FILES['image']
Tu verras si c'est un array ou non...
0
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021
25 nov. 2019 à 16:37
elle a affiché seulement le premier fichier mais les autres sont disapparu.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021
25 nov. 2019 à 16:43
Tu as donc la réponse à ton souci...
La variable ne contient pas ce que tu pensais...
Il faut donc corriger ça.
Sûrement au niveau de ton formulaire html...
0