From 87798e5554eb0330cd2de255e5034f0472d410a4 Mon Sep 17 00:00:00 2001 From: polo Date: Tue, 20 Apr 2021 21:46:33 +0200 Subject: mot de passe --- imageAJAX.php | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 imageAJAX.php (limited to 'imageAJAX.php') diff --git a/imageAJAX.php b/imageAJAX.php new file mode 100644 index 0000000..49c856d --- /dev/null +++ b/imageAJAX.php @@ -0,0 +1,100 @@ + $_FILES['upload']['name'], + //~ 'type' => $_FILES['upload']['type'], + //~ 'tmp_name' => $_FILES['upload']['tmp_name'], + //~ 'error' => $_FILES['upload']['error'], + //~ 'size' => $_FILES['upload']['size'] +//~ ); +// print_r sert à "afficher" un tableau, +// le 2ème paramètre 'true' permet de produire une simple chaine au lieu d'un affichage HTML +// $tableau = print_r($_FILES, true); +// $nom_fichier = "POST_AJAX.log"; +// $fichier = fopen('data/' . $page . '/images/' . $nom_fichier, 'w'); +// // w peut créer un fichier, si il existe déjà, il est effacé par le nouveau contenu +// fputs($fichier, $tableau); +// fclose($fichier); +// chmod('data/' . $page . '/images/' . $nom_fichier, 0666); + + +// 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; -- cgit v1.2.3