Erreur upload fichiers multiple
Résolu
LearnDeep
Messages postés
70
Statut
Membre
-
LearnDeep Messages postés 70 Statut Membre -
LearnDeep Messages postés 70 Statut Membre -
Bonjour , je suis entrain d'importer plusieurs fichiers a la fois mais j'ai rencontré plusieurs problèmes.
mon code php :
les erreurs:

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:
- Pathinfo() expects parameter 1 to be string, array given
- Upload video youtube - Télécharger - Diffusion
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Excel cellule choix multiple - Guide
- Wetransfer gratuit fichiers lourd - Guide
<?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); }Commence par faire un var_dump de ta variable $_FILES['image']
Tu verras si c'est un array ou non...
La variable ne contient pas ce que tu pensais...
Il faut donc corriger ça.
Sûrement au niveau de ton formulaire html...