Bonjour � tous,
Je cherche de l'aide sur la biblioth�que dropzone.js. (fichier js en pi�ce jointe)
J'ai beau parcourir la doc je n'arrive pas � trouver comment d�tecter les doublons de fichiers avec cette "dropzone". je cherche � checker c�t� serveur si le fichier existe d�j� dans mon dossier et � g�n�rer un message d'erreur c�t� dropzone dans le cas o� le fichier existe d�j� c�t� serveur.
Si quelqu'un � d�j� travailler dessus je suis preneur de quelques conseils.
c�t� vue voici mon code :
Code html : 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 <div class="row"> <div class="col-lg-4"> </div> <div class="col-lg-4"> <div class="panel panel-default"> <div class="panel-heading">Sélectionner un fichier XLS, XLSX : </div> <div class="panel-body"> <form class="dropzone my-dropzone" id="form_snippet_image" action="{{path('ajax_snippet_image_send')}}"> </form> </div> </div> <div class="col-lg-4"> </div> </div> <script> //je récupère l'action où sera traité l'upload en PHP var _actionToDropZone = $("#form_snippet_image").attr('action'); //je définis ma zone de drop grâce à l'ID de ma div citée plus haut. Dropzone.autoDiscover = false; var myDropzone = new Dropzone("#form_snippet_image", { url: _actionToDropZone }); myDropzone.on('addedfile', function(file) { alert('un nouveau fichier uploadé !'); }); </script>
c�t� contr�leur (Symfony3) voici ce que j'ai fais :
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
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
40
41
42
43
44 /** * * @Method({"GET", "POST"}) * @Route("/ajax/snippet/image/send", name="ajax_snippet_image_send") * @Security("has_role('ROLE_USER')") */ public function ajaxSnippetImageSendAction(Request $request) { $finder = new Finder(); $filesList = array(); $finder->files()->in('uploads/files'); foreach($finder as $file) { $filesList[] = $file->getRelativePathname(); } $em = $this->container->get("doctrine.orm.default_entity_manager"); $document = new Document(); $media = $request->files->get('file'); $nom_fichier = $media->getClientOriginalName(); if (!in_array($nom_fichier, $filesList)) { $document->setFile($media); $document->setPath($media->getPathName()); $document->setName($nom_fichier); $document->setDateUpload(new \DateTime()); $document->preUpload(); $document->upload(); $em->persist($document); $em->flush(); //infos sur le document envoyé var_dump($request->files->get('file')) or die; return new JsonResponse(array('success' => true)); } else { var_dump($request->files->get('file')) or die; return new JsonResponse(array('success'=> false, 'error' => true)); } }
Le probl�me est que visuellement l'utilisateur n'a pas de message il ne se passe rien. Cela fonctionne car cela n'importe pas le fichier une seconde fois sur mon serveur en revanche visuellement c�t� navigateur je ne comprends pas comment afficher un message d'erreur dans la dropzone. ( je comprends quasi rien � l'AJAX )
L'id�e est de pouvoir r�cup�rer un message d'erreur qui serait interpr�table par les fonctinnalit�s d�j� existantes dans la dropzone.
Est-ce faisable ?
D'avance merci � tous pour votre aide.
Partager