1 pi�ce(s) jointe(s)
Dropzone.js duplicate files
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:
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:
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.