summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--index.php9
-rw-r--r--src/integration/ckeditor5/image_upload.php60
-rw-r--r--src/integration/ckeditor5/view.php7
3 files changed, 39 insertions, 37 deletions
diff --git a/index.php b/index.php
index 9beed23..1ece14f 100644
--- a/index.php
+++ b/index.php
@@ -2,20 +2,17 @@
2// index.php 2// index.php
3 3
4require 'src/integration/ckeditor5/config.php'; 4require 'src/integration/ckeditor5/config.php';
5require 'src/integration/ckeditor5/init.php'; 5require $ckeditor_integration_path . 'init.php';
6makeTranslationSymLink(); 6makeTranslationSymLink();
7 7
8 8
9// routage 9// routage
10 10
11// upload images AJAX 11// upload images AJAX
12if(isset($_GET['action']) && $_GET['action'] === 'upload_image') // image insérée dans l'éditeur => requête AJAX 12require $ckeditor_integration_path . 'image_upload.php';
13{
14 require $ckeditor_integration_path . 'image_upload.php';
15}
16 13
17// submit normal 14// submit normal
18elseif(isset($_GET['action']) && $_GET['action'] === 'submit') // HTML envoyé par l'éditeur 15if(isset($_GET['action']) && $_GET['action'] === 'submit') // HTML envoyé par l'éditeur
19{ 16{
20 require $ckeditor_integration_path . 'clean_html.php'; 17 require $ckeditor_integration_path . 'clean_html.php';
21 $html_from_editor = getAndCleanEditorOutput(); // manipule $_POST['contenu']; 18 $html_from_editor = getAndCleanEditorOutput(); // manipule $_POST['contenu'];
diff --git a/src/integration/ckeditor5/image_upload.php b/src/integration/ckeditor5/image_upload.php
index 9090ddf..6cbc911 100644
--- a/src/integration/ckeditor5/image_upload.php
+++ b/src/integration/ckeditor5/image_upload.php
@@ -15,33 +15,50 @@
15 15
16 16
17$erreur = ''; 17$erreur = '';
18if(isset($_FILES['upload']) AND $_FILES['upload']['error'] == 0) // 0 signifie ok 18if($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['upload'])
19 && strpos($_SERVER['CONTENT_TYPE'], 'multipart/form-data') !== false // simple upload adapter envoie "des form-data"
20 && isset($_GET['action']) && $_GET['action'] === 'upload_image') // image insérée dans l'éditeur => requête AJAX
19{ 21{
20 if($_FILES['upload']['size'] <= $php_ini_max_size ) 22 if($_FILES['upload']['error'] == 0) // 0 signifie ok
21 { 23 {
22 $infos = pathinfo ($_FILES['upload']['name']); 24 if($_FILES['upload']['size'] <= $php_ini_max_size )
23 $extension = $infos['extension'];
24 $extautorisées = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'tiff'];
25 // on prend la même liste que celle côté javascript, le SVG est bloqué pour raison de sécurité (javascript à l'intérieur)
26 if(in_array($extension, $extautorisées))
27 { 25 {
28 move_uploaded_file ($_FILES['upload']['tmp_name'], 'data/' . $page . '/images/' . $_FILES['upload']['name']); 26 $infos = pathinfo ($_FILES['upload']['name']);
29 chmod('data/' . $page . '/images/' . $_FILES['upload']['name'], 0666); 27 $extension = $infos['extension'];
28 $extautorisées = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'tiff'];
29 // on prend la même liste que celle côté javascript, le SVG est bloqué pour raison de sécurité (javascript à l'intérieur)
30 if(in_array($extension, $extautorisées))
31 {
32 move_uploaded_file ($_FILES['upload']['tmp_name'], 'data/' . $page . '/images/' . $_FILES['upload']['name']);
33 chmod('data/' . $page . '/images/' . $_FILES['upload']['name'], 0666);
34 }
35 else
36 {
37 $erreur = 'mauvais format, veuillez utiliser une image comportant un de ces formats: jpg ou jpeg, png, gif, bmp, webp, tiff<br />le format svg n\'est pas supporté';
38 }
30 } 39 }
31 else 40 else
32 { 41 {
33 $erreur = 'mauvais format, veuillez utiliser une image comportant un de ces formats: jpg ou jpeg, png, gif, bmp, webp, tiff<br />le format svg n\'est pas supporté'; 42 $erreur = 'fichier trop lourd';
34 } 43 }
35 } 44 }
36 else 45 else
37 { 46 {
38 $erreur = 'fichier trop lourd'; 47 $erreur = $_FILES['upload']['error'];
39 } 48 }
49
50 if(empty($erreur))
51 {
52 $chemin = '{"url": "data/' . $page . '/images/' . $_FILES['upload']['name'] . '"}';
53 echo $chemin;
54 }
55 else
56 {
57 echo $erreur;
58 }
59 die;
40} 60}
41else 61
42{
43 $erreur = $_FILES['upload']['error'];
44}
45/* les erreurs retournées avec $_FILES['upload']['error']: 62/* les erreurs retournées avec $_FILES['upload']['error']:
460 pas d'erreur 630 pas d'erreur
471 taille du fichier supérieure à la valeur de upload_max_filesize dans le fichier php.ini (par défaut = 2 MO) 641 taille du fichier supérieure à la valeur de upload_max_filesize dans le fichier php.ini (par défaut = 2 MO)
@@ -50,15 +67,4 @@ else
504 pas de fichier du tout 674 pas de fichier du tout
516 pas de dossier temporaire pour mettre le fichier 686 pas de dossier temporaire pour mettre le fichier
527 echec de l'écriture sur le DD 697 echec de l'écriture sur le DD
538 envoi arrêté par une extension de PHP mais on ne nous dit pas pourquoi => diagnostic avec la fonction phpinfo() */ 708 envoi arrêté par une extension de PHP mais on ne nous dit pas pourquoi => diagnostic avec la fonction phpinfo() */ \ No newline at end of file
54
55if(empty($erreur))
56{
57 $chemin = '{"url": "data/' . $page . '/images/' . $_FILES['upload']['name'] . '"}';
58 echo $chemin;
59}
60else
61{
62 echo $erreur;
63}
64die;
diff --git a/src/integration/ckeditor5/view.php b/src/integration/ckeditor5/view.php
index 794e55f..b5cf5cc 100644
--- a/src/integration/ckeditor5/view.php
+++ b/src/integration/ckeditor5/view.php
@@ -138,11 +138,10 @@ ob_start();
138 simpleUpload: { 138 simpleUpload: {
139 uploadUrl: upload_url, 139 uploadUrl: upload_url,
140 140
141 // Headers supplémentaires envoyés avec la requête 141 // authentifier l'envoyeur + protection au CSRF
142 // c'est ici qu'on installe les mécanismes de sécurités comme l'authentification et la protection au CSRF
143 headers: { 142 headers: {
144 //'X-CSRF-TOKEN': 'CSRF-Token', 143 'X-CSRF-TOKEN': 'CSRF-Token',
145 //Authorization: 'Bearer <JSON Web Token>' 144 Authorization: 'Bearer <JSON Web Token>'
146 } 145 }
147 }, 146 },
148 // formats acceptés par défaut: jpeg, png, gif, bmp, webp, tiff 147 // formats acceptés par défaut: jpeg, png, gif, bmp, webp, tiff