$_FILES['upload']['name'], 'type' => $_FILES['upload']['type'], 'tmp_name' => $_FILES['upload']['tmp_name'], 'error' => $_FILES['upload']['error'], 'size' => $_FILES['upload']['size'] ); print_r($upload);*/ session_start(); // et une backdoor de fermée! if(!isset($_SESSION['admin']) || $_SESSION['admin'] != 1 || !isset($_FILES['upload']) || empty($_FILES['upload'])) { header('Location: index.php?erreur=imageajax'); } // get envoyé avec le javascript $page = $_GET['page']; // déjà fait dans installation.php if(!file_exists('data/' . $page . '/images')) { mkdir('data/' . $page . '/images', 0777); chmod('data/' . $page . '/images', 0777); } // taille en Mo à adapter au serveur (2Mo est la valeur par défaut dans le php.ini) $tailleMax = 2000000; $erreur = ''; // traitement et enregistrement de l'image if (isset($_FILES['upload']) AND $_FILES['upload']['error'] == 0) // 0 signifie ok { if ($_FILES['upload']['size'] <= $tailleMax ) { $infos = pathinfo ($_FILES['upload']['name']); $extension = $infos['extension']; $extautorisées = array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'tiff'); // on prend la même liste que celle côté javascript, le SVG est bloqué pour raison de sécurité (javascript à l'intérieur) if (in_array ($extension, $extautorisées)) { move_uploaded_file ($_FILES['upload']['tmp_name'], 'data/' . $page . '/images/' . $_FILES['upload']['name']); chmod('data/' . $page . '/images/' . $_FILES['upload']['name'], 0666); } else{$erreur = 'mauvais format, veuillez utiliser une image comportant un de ces formats: jpg ou jpeg, png, gif, bmp, webp, tiff
le format svg n\'est pas supporté';} } else{$erreur = 'fichier trop lourd';} } else{$erreur = $_FILES['upload']['error'];} /* les erreurs retournées avec $_FILES['upload']['error']: 0 pas d'erreur 1 taille du fichier supérieure à la valeur de upload_max_filesize dans le fichier php.ini (par défaut = 2 MO) 2 taille du fichier supérieure à la valeur de MAX_FILE_SIZE dans le formulaire HTML 3 fichier partiellement téléchargé 4 pas de fichier du tout 6 pas de dossier temporaire pour mettre le fichier 7 echec de l'écriture sur le DD 8 envoi arrêté par une extension de PHP mais on ne nous dit pas pourquoi => diagnostic avec la fonction phpinfo() */ // nouveau chemin à renvoyer en format json $chemin = '{"url": "data/' . $page . '/images/' . $_FILES['upload']['name'] . '"}'; //echo json_encode($chemin); echo $chemin;