{"id":24862,"date":"2021-05-26T18:56:00","date_gmt":"2021-05-26T15:56:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24862"},"modified":"2021-10-18T02:13:25","modified_gmt":"2021-10-17T23:13:25","slug":"glisser-deposer-le-telechargement-de-fichiers-a-l-aide-de-javascript-et-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/glisser-deposer-le-telechargement-de-fichiers-a-l-aide-de-javascript-et-php\/","title":{"rendered":"Glisser-d\u00e9poser le t\u00e9l\u00e9chargement de fichiers \u00e0 l&rsquo;aide de JavaScript et PHP"},"content":{"rendered":"<p>Cherchez-vous \u00e0 int\u00e9grer la fonction de t\u00e9l\u00e9chargement de fichiers par glisser-d\u00e9poser sur votre site Web\u00a0? Cette fonctionnalit\u00e9 est conviviale et r\u00e9duit les clics des utilisateurs. Dans cet article, nous \u00e9tudions comment ajouter des fonctionnalit\u00e9s pour le t\u00e9l\u00e9chargement de fichiers par glisser-d\u00e9poser \u00e0 l&rsquo;aide de JavaScript et PHP. Vous aurez \u00e9galement une entr\u00e9e de fichier pour parcourir un fichier.<\/p>\n<p>L&rsquo;interface utilisateur de t\u00e9l\u00e9chargement de fichier final ressemblera \u00e0 l&rsquo;image ci-dessous.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20461-6081f57b5e9c0.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20461-6081f57b5e9c0.png\" alt=\"Glisser-d\u00e9poser le t\u00e9l\u00e9chargement de fichiers \u00e0 l&#039;aide de JavaScript et PHP\" ><\/a><\/p>\n<h3>Pourquoi avoir besoin de la fonctionnalit\u00e9 de t\u00e9l\u00e9chargement de fichiers par glisser-d\u00e9poser\u00a0?<\/h3>\n<p>Nous voulons toujours avoir une meilleure exp\u00e9rience utilisateur sur le site Web. Donner la fonction glisser-d\u00e9poser pour t\u00e9l\u00e9charger des fichiers est une option facile \u00e0 utiliser pour vos utilisateurs. De nombreux sites Web populaires comme Facebook, WordPress utilisent d\u00e9j\u00e0 cette fonctionnalit\u00e9.<\/p>\n<p>Cette fonctionnalit\u00e9 est meilleure que la m\u00e9thode traditionnelle de t\u00e9l\u00e9chargement de fichiers. Cela am\u00e9liore \u00e9galement l&rsquo;exp\u00e9rience utilisateur car l&rsquo;utilisateur fait simplement glisser le fichier et le t\u00e9l\u00e9charge sur un serveur.<\/p>\n<p>Dans ce tutoriel, nous allons donner les deux options aux utilisateurs. On peut t\u00e9l\u00e9charger le fichier soit par glisser-d\u00e9poser, soit via l&rsquo;entr\u00e9e du fichier.<\/p>\n<p>Je vais utiliser Ajax pour t\u00e9l\u00e9charger des fichiers c\u00f4t\u00e9 serveur. En utilisant Ajax, votre page ne sera pas charg\u00e9e. Il envoie simplement le fichier au serveur en arri\u00e8re-plan.<\/p>\n<h3>Int\u00e9grer le t\u00e9l\u00e9chargeur de fichiers par glisser-d\u00e9poser<\/h3>\n<p>Pour commencer, \u00e9crivons d&rsquo;abord le code HTML. Le code HTML suivant aura un conteneur pour le t\u00e9l\u00e9chargement de fichiers. Il comprend \u00e9galement un fichier CSS et JS que je vais cr\u00e9er dans les prochaines \u00e9tapes.<\/p>\n<pre><code>&lt;link rel=\"stylesheet\" href=\"style.css\"&gt;\n&lt;div id=\"drop_file_zone\" ondrop=\"upload_file(event)\" ondragover=\"return false\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div id=\"drag_upload_file\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Drop file here&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;p&gt;or&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"button\" value=\"Select File\" onclick=\"file_explorer();\"&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" id=\"selectfile\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n&lt;\/div&gt;\n\u00a0\n&lt;script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js\"&gt;&lt;\/script&gt;\n&lt;script src=\"custom.js\"&gt;&lt;\/script&gt;<\/code><\/pre>\n<p>Dans le code HTML ci-dessus, j&rsquo;ai utilis\u00e9 les 2 \u00e9v\u00e9nements &#8211; ondrop et onclick. Je vais d\u00e9finir leurs m\u00e9thodes dans le <code>custom.js<\/code>fichier. Avant cela, ajoutons le code CSS dans le <code>style.css<\/code>fichier.<\/p>\n<pre><code>#drop_file_zone {\n\u00a0\u00a0\u00a0\u00a0background-color: #EEE;\n\u00a0\u00a0\u00a0\u00a0border: #999 5px dashed;\n\u00a0\u00a0\u00a0\u00a0width: 290px;\n\u00a0\u00a0\u00a0\u00a0height: 200px;\n\u00a0\u00a0\u00a0\u00a0padding: 8px;\n\u00a0\u00a0\u00a0\u00a0font-size: 18px;\n}\n#drag_upload_file {\n\u00a0\u00a0width:50%;\n\u00a0\u00a0margin:0 auto;\n}\n#drag_upload_file p {\n\u00a0\u00a0text-align: center;\n}\n#drag_upload_file #selectfile {\n\u00a0\u00a0display: none;\n}<\/code><\/pre>\n<p>Notre objectif est que lorsqu&rsquo;un utilisateur supprime ou parcourt un fichier, le fichier doit \u00eatre t\u00e9l\u00e9charg\u00e9 sur le serveur. Pour cela, vous devez \u00e9crire du code JavaScript qui prend un fichier c\u00f4t\u00e9 client et l&rsquo;envoie au serveur.<\/p>\n<p>Pour g\u00e9rer ce flux, ajoutez le code ci-dessous dans le <code>custom.js<\/code>fichier.<\/p>\n<pre><code>var fileobj;\nfunction upload_file(e) {\n\u00a0\u00a0\u00a0\u00a0e.preventDefault();\n\u00a0\u00a0\u00a0\u00a0fileobj = e.dataTransfer.files[0];\n\u00a0\u00a0\u00a0\u00a0ajax_file_upload(fileobj);\n}\n\u00a0\nfunction file_explorer() {\n\u00a0\u00a0\u00a0\u00a0document.getElementById('selectfile').click();\n\u00a0\u00a0\u00a0\u00a0document.getElementById('selectfile').onchange = function() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0fileobj = document.getElementById('selectfile').files[0];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ajax_file_upload(fileobj);\n\u00a0\u00a0\u00a0\u00a0};\n}\n\u00a0\nfunction ajax_file_upload(file_obj) {\n\u00a0\u00a0\u00a0\u00a0if(file_obj != undefined) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var form_data = new FormData();\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form_data.append('file', file_obj);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$.ajax({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0type: 'POST',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0url: 'ajax.php',\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0contentType: false,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0processData: false,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0data: form_data,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0success:function(response) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0alert(response);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$('#selectfile').val('');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0}\n}<\/code><\/pre>\n<p>Le code JavaScript \u00e9crit ci-dessus d\u00e9tecte automatiquement les options choisies par l&rsquo;utilisateur pour t\u00e9l\u00e9charger un fichier. Enfin, la fonction <code>ajax_file_upload()<\/code>prend l&rsquo;objet fichier et le transmet au fichier Ajax.<\/p>\n<h4>T\u00e9l\u00e9charger le fichier sur le serveur<\/h4>\n<p>Dans le fichier Ajax, j&rsquo;\u00e9crirai le code r\u00e9el qui t\u00e9l\u00e9charge le fichier sur le serveur. Cr\u00e9ez un fichier appel\u00e9 <code>ajax.php<\/code>et ajoutez-y le code ci-dessous.<\/p>\n<pre><code>&lt;?php\n$arr_file_types = ['image\/png', 'image\/gif', 'image\/jpg', 'image\/jpeg'];\n\u00a0\nif (!(in_array($_FILES['file']['type'], $arr_file_types))) {\n\u00a0\u00a0\u00a0\u00a0echo \"false\";\n\u00a0\u00a0\u00a0\u00a0return;\n}\n\u00a0\nif (!file_exists('uploads')) {\n\u00a0\u00a0\u00a0\u00a0mkdir('uploads', 0777);\n}\n\u00a0\nmove_uploaded_file($_FILES['file']['tmp_name'], 'uploads\/'. time(). '_'. $_FILES['file']['name']);\n\u00a0\necho \"File uploaded successfully.\";<\/code><\/pre>\n<p>Ce code PHP v\u00e9rifie d&rsquo;abord si le dossier appel\u00e9 &lsquo;uploads&rsquo; existe sur un serveur. Sinon, il cr\u00e9e un r\u00e9pertoire &lsquo;uploads&rsquo; et d\u00e9place le fichier \u00e0 l&rsquo;int\u00e9rieur. Vous pouvez ajuster ce chemin de r\u00e9pertoire selon vos besoins.<\/p>\n<p>J&rsquo;esp\u00e8re que vous comprenez comment ajouter un t\u00e9l\u00e9chargement de fichier par glisser-d\u00e9poser en utilisant PHP et JavaScript. Faites-moi part de vos r\u00e9flexions et suggestions dans le commentaire ci-dessous.<\/p>\n<h4>Articles Li\u00e9s<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/glissez-deposez-plusieurs-fichiers-en-utilisant-javascript-et-php\/\" title=\"Glissez-d\u00e9posez plusieurs fichiers en utilisant JavaScript et PHP\" >Glissez-d\u00e9posez plusieurs fichiers en utilisant JavaScript et PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/fr\/telechargement-de-fichiers-ajax-avec-php-et-jquery\/\" title=\"T\u00e9l\u00e9chargement de fichiers Ajax avec PHP et jQuery\" >T\u00e9l\u00e9chargement de fichiers Ajax avec PHP et jQuery<\/a><br \/>\n<a href=\"https:\/\/artisansweb.net\/ajax-file-upload-php-jquery\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a>&#8211; <a href=\"https:\/\/artisansweb.net\/ajax-file-upload-php-jquery\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a><a href=\"https:\/\/themewp.inform.click\/fr\/tinypng-compresse-des-images-a-l-aide-de-php\/\" title=\"TinyPNG compresse des images \u00e0 l&#039;aide de PHP\">TinyPNG compresse des images \u00e0 l&rsquo;aide de PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dans cet article, nous vous montrons comment ajouter un t\u00e9l\u00e9chargement de fichier par glisser-d\u00e9poser pour votre site Web. En plus du glisser-d\u00e9poser, nous offrons \u00e9galement une option pour choisir le fichier.<\/p>\n","protected":false},"author":1,"featured_media":21623,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[205,245],"tags":[844],"class_list":["post-24862","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-elementor-4","category-javascript-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24862","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24862"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24862\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/21623"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24862"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24862"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24862"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}