Bonjour à tous,
Je suis entrain de réaliser un upload d'image via l'API drag and drop. J'arrive à afficher mon image dans de la zone concernée. Mon souci ce que je n'arrive pas à l'enregistrer dans la base de données. J'utilise du jQuery, Ajax et PHP. Je ne réceptionne pas mon fichier côté serveur.
Je cherche une solution à ce problème.
Merci par avance!
Ci-dessous le code:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <div id="dropzone" style="width:600px; height:600px; border:3px dotted #000;"> <h3 class="droptext">Drag and Drop Images Here</h3> </div>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 $(document).ready(function() { $("div#dropzone").on('dragenter', function (e) { e.preventDefault(); }); $("div#dropzone").on('dragover', function (e) { e.preventDefault(); }); $("div#dropzone").on('drop', function (e) { e.preventDefault(); var image =e.originalEvent.dataTransfer.files; var affiche =e.originalEvent.dataTransfer.files[0]; if (affiche.type.match('image.*')) { var mama=window.URL.createObjectURL(affiche) document.getElementById('dropzone').style.backgroundImage='url('+mama+')' createFormData(image); } }); }); function createFormData(image) { var formImage = new FormData(); formImage.append('userImage', image[0]); uploadFormData(formImage); } function uploadFormData(formData) { $.ajax({ url: "upload.php", type: "POST", data: formData, contentType:false, cache: false, processData: false, success: function(data){ $('#dropzone').append(data); }}); }
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $upload_dir = '/images/'; if(is_array($_FILES)) { if(is_uploaded_file($_FILES['userImage']['tmp_name'])) { $cheminSource = $_FILES['userImage']['tmp_name']; $cheminCible = $upload_dir.$_FILES['userImage']['name']; if(move_uploaded_file($cheminSource, $cheminCible)) { $q = array('mediaName'=>$cheminCible); $req = $db->prepare('INSERT INTO medias SET media_name = :mediaName'); $req->execute($q); } } }
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TABLE IF NOT EXISTS `medias` ( `media_id` int(11) NOT NULL AUTO_INCREMENT, `media_name` varchar(255) NOT NULL, PRIMARY KEY (`media_id`), ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
Partager