{"id":24845,"date":"2021-05-26T18:40:00","date_gmt":"2021-05-26T15:40:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24845"},"modified":"2021-10-18T02:38:44","modified_gmt":"2021-10-17T23:38:44","slug":"datei-upload-per-drag-drop-mit-javascript-und-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/datei-upload-per-drag-drop-mit-javascript-und-php\/","title":{"rendered":"Datei-Upload per Drag &#038; Drop mit JavaScript und PHP"},"content":{"rendered":"<p>M\u00f6chten Sie die Drag-and-Drop-Funktion zum Hochladen von Dateien in Ihre Website integrieren? Diese Funktion ist benutzerfreundlich und reduziert die Klicks der Benutzer. In diesem Artikel untersuchen wir, wie Sie mithilfe von JavaScript und PHP Funktionen zum Hochladen von Dateien per Drag &#038; Drop hinzuf\u00fcgen. Sie haben auch eine Dateieingabe, um eine Datei zu durchsuchen.<\/p>\n<p>Die endg\u00fcltige Benutzeroberfl\u00e4che f\u00fcr den Dateiupload sieht wie in der Abbildung unten aus.<\/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=\"Datei-Upload per Drag &amp; Drop mit JavaScript und PHP\" ><\/a><\/p>\n<h3>Warum brauchen Sie die Funktion zum Hochladen von Dateien per Drag &#038; Drop?<\/h3>\n<p>Wir m\u00f6chten immer eine bessere Benutzererfahrung auf der Website haben. Die Drag-and-Drop-Funktion zum Hochladen von Dateien ist eine benutzerfreundliche Option f\u00fcr Ihre Benutzer. Viele beliebte Websites wie Facebook, WordPress verwenden diese Funktion bereits.<\/p>\n<p>Diese Funktion sieht besser aus als die herk\u00f6mmliche Methode zum Hochladen von Dateien. Es verbessert auch die Benutzererfahrung, da der Benutzer die Datei einfach zieht und auf einen Server hochl\u00e4dt.<\/p>\n<p>In diesem Tutorial werden wir den Benutzern beide Optionen anbieten. Die Datei kann entweder per Drag &#038; Drop oder \u00fcber die Dateieingabe hochgeladen werden.<\/p>\n<p>Ich werde Ajax verwenden, um Dateien auf der Serverseite hochzuladen. Mit Ajax wird Ihre Seite nicht geladen. Es sendet die Datei einfach im Hintergrund an den Server.<\/p>\n<h3>Integrieren Sie Drag-and-Drop-Datei-Uploader<\/h3>\n<p>Um zu beginnen, schreiben wir zuerst den HTML-Code. Der folgende HTML-Code enth\u00e4lt einen Container f\u00fcr den Datei-Upload. Es enth\u00e4lt auch eine CSS- und JS-Datei, die ich in den n\u00e4chsten Schritten erstellen werde.<\/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>Im obigen HTML habe ich die 2 Ereignisse verwendet \u2013 ondrop und onclick. Ich werde ihre Methoden in der <code>custom.js<\/code>Datei definieren. Zuvor f\u00fcgen wir den CSS-Code in die <code>style.css<\/code>Datei ein.<\/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>Unser Ziel ist es, wenn ein Benutzer eine Datei ablegt oder durchsucht, die Datei auf den Server hochzuladen. Dazu m\u00fcssen Sie JavaScript-Code schreiben, der eine Datei von der Clientseite aufnimmt und an den Server sendet.<\/p>\n<p>Um diesen Ablauf zu handhaben, f\u00fcgen Sie den folgenden Code in die <code>custom.js<\/code>Datei ein.<\/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>Der oben geschriebene JavaScript-Code erkennt automatisch die Optionen, die der Benutzer zum Hochladen einer Datei ausgew\u00e4hlt hat. Schlie\u00dflich nimmt die Funktion <code>ajax_file_upload()<\/code>das Dateiobjekt und \u00fcbergibt es an die Ajax-Datei.<\/p>\n<h4>Datei auf Server hochladen<\/h4>\n<p>In die Ajax-Datei schreibe ich den eigentlichen Code, der die Datei auf den Server hochl\u00e4dt. Erstellen Sie eine Datei namens <code>ajax.php<\/code>und f\u00fcgen Sie den folgenden Code hinzu.<\/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>Dieser PHP-Code pr\u00fcft zuerst, ob der Ordner namens &#8218;uploads&#8216; auf einem Server existiert. Wenn nicht, erstellt es ein &#8218;uploads&#8216;-Verzeichnis und verschiebt die Datei darin. Sie k\u00f6nnen diesen Verzeichnispfad nach Ihren W\u00fcnschen anpassen.<\/p>\n<p>Ich hoffe, Sie verstehen, wie Sie das Hochladen von Dateien per Drag-and-Drop mit PHP und JavaScript hinzuf\u00fcgen. Teilen Sie mir Ihre Gedanken und Vorschl\u00e4ge im Kommentar unten mit.<\/p>\n<h4>Zum Thema passende Artikel<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/hochladen-mehrerer-dateien-per-drag-drop-mit-javascript-und-php\/\" title=\"Hochladen mehrerer Dateien per Drag &amp; Drop mit JavaScript und PHP\" >Hochladen mehrerer Dateien per Drag &amp; Drop mit JavaScript und PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/de\/ajax-datei-upload-mit-php-und-jquery\/\" title=\"Ajax-Datei-Upload mit PHP und jQuery\" >Ajax-Datei-Upload mit PHP und 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\/de\/tinypng-bilder-mit-php-komprimieren\/\" title=\"TinyPNG Bilder mit PHP komprimieren\">TinyPNG Bilder mit PHP komprimieren<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Artikel zeigen wir Ihnen, wie Sie Drag-and-Drop-Datei-Upload f\u00fcr Ihre Website hinzuf\u00fcgen. Zusammen mit Drag &#038; Drop bieten wir auch die Option zur Dateiauswahl.<\/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":[204,244],"tags":[845],"class_list":["post-24845","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-elementor-3","category-javascript-3","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=24845"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24845\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/21623"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=24845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=24845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=24845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}