{"id":25282,"date":"2021-05-26T09:43:00","date_gmt":"2021-05-26T06:43:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25282"},"modified":"2021-10-17T18:47:19","modified_gmt":"2021-10-17T15:47:19","slug":"lohistage-mitme-faili-uleslaadimine-javascripti-ja-php-abil","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/lohistage-mitme-faili-uleslaadimine-javascripti-ja-php-abil\/","title":{"rendered":"Lohistage mitme faili \u00fcleslaadimine JavaScripti ja PHP abil"},"content":{"rendered":"<p>Varem olen kirjutanud artikli <a href=\"https:\/\/themewp.inform.click\/et\/pukseerige-faili-uleslaadimine-javascripti-ja-php-abil\/\" title=\"Faili \u00fcleslaadimine lohistades JavaScripti ja PHP abil\" >Faili \u00fcleslaadimine lohistades JavaScripti ja PHP abil<\/a>. M\u00f5ned lugejad palusid kirjutada artikli failide \u00fcleslaadija lisamise kohta, mis v\u00f5imaldab kasutajatel pukseerimisfunktsioonidega \u00fcles laadida mitu faili.<\/p>\n<p>Veebirakenduse t\u00f6\u00f6tamise ajal peate v\u00f5ib-olla oma vormile \u00fcles laadima mitu faili \u00fche \u00fcleslaadijaga. See v\u00f5ib aidata kasutajal \u00fche v\u00f5i mitu faili \u00fche korraga \u00fcles laadida. Neile ei meeldi mitu faili \u00fckshaaval \u00fcles laadida. Sellise faili \u00fcleslaadimise funktsiooni andmine lisab paremat kasutuskogemust ja kiirendab ka teie rakendust.<\/p>\n<p>Selles artiklis n\u00e4itan teile, kuidas seda faili \u00fcleslaadijat lisada ilma v\u00e4list pukseerimispluginat kasutamata. Laadin failid \u00fcles Ajaxi abil. See t\u00e4hendab, et failid laaditakse serverisse \u00fcles ilma tervet lehte uuesti laadimata.<\/p>\n<h3>Alustamine<\/h3>\n<p>Nagu ma \u00fctlesin, ei kasuta me pukseerimise ja lohistamise funktsiooni jaoks \u00fchtegi v\u00e4list pistikprogrammi. Kirjutan kogu koodi nullist. See on palju lihtsam. Selles pole keerukat kraami. J\u00e4rgige lihtsalt allolevaid samme ja olete valmis.<\/p>\n<p>Loome faili <code>index.html<\/code>ja lisame sellesse koodi allpool.<\/p>\n<p><strong>index.html<\/strong><\/p>\n<pre><code>&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;meta charset=\"UTF-8\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;meta http-equiv=\"X-UA-Compatible\" content=\"ie=edge\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;title&gt;Drag Drop Multiple File Upload&lt;\/title&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;link rel=\"stylesheet\" href=\"style.css\"&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div id=\"drop_file_zone\" ondrop=\"upload_file(event)\" ondragover=\"return false\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div id=\"drag_upload_file\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Drop file(s) here&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;p&gt;or&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;p&gt;&lt;input type=\"button\" value=\"Select File(s)\" onclick=\"file_explorer();\"&gt;&lt;\/p&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" id=\"selectfile\" multiple&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js\"&gt;&lt;\/script&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;script src=\"custom.js\"&gt;&lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>Siia lisasin <code>style.css<\/code>ja <code>custom.js<\/code>kuhu lisame seotud koodi. Kuna kavatseme kasutada Ajaxi, lisasin sinna ka jQuery raamatukogu.<\/p>\n<p>Meie failide \u00fcleslaadija jaoks p\u00f5hiliidese andmiseks lisame m\u00f5ned CSS-i atribuudid. Muidugi saate failide \u00fcleslaadijale erineva ilme andmiseks lisada oma CSS-i.<\/p>\n<p><strong>stiil.css<\/strong><\/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\u00a0\u00a0\u00a0width:50%;\n\u00a0\u00a0\u00a0\u00a0margin:0 auto;\n}\n#drag_upload_file p {\n\u00a0\u00a0\u00a0\u00a0text-align: center;\n}\n#drag_upload_file #selectfile {\n\u00a0\u00a0\u00a0\u00a0display: none;\n}<\/code><\/pre>\n<p>P\u00e4rast seda peaksite oma faili \u00fcleslaadijat n\u00e4gema nagu allpool kuvat\u00f5mmist:<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20458-6081f4f9475a9.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-20458-6081f4f9475a9.png\" alt=\"Lohistage mitme faili \u00fcleslaadimine JavaScripti ja PHP abil\" ><\/a><\/p>\n<h3>Lohistage mitu faili JavaScripti ja PHP abil<\/h3>\n<p>Teile on m\u00e4\u00e4ratud p\u00f5hiliides. N\u00fc\u00fcd v\u00f5ime j\u00e4tkata ja kirjutada JavaScripti ja PHP jaoks tegeliku koodi, mis laadib failid serverisse \u00fcles. Lisasin meie HTML-i 2 meetodit upload_file() ja file_explorer (), mis kutsuvad drop-faile ja valivad vastavalt failid.<\/p>\n<p>M\u00e4\u00e4ratleme need meetodid ja edastame failid serveripoolsele skriptile, mis laadib failid serverisse \u00fcles.<\/p>\n<p><strong>custom.js<\/strong><\/p>\n<pre><code>var fileobj;\nfunction upload_file(e) {\n\u00a0\u00a0\u00a0\u00a0e.preventDefault();\n\u00a0\u00a0\u00a0\u00a0ajax_file_upload(e.dataTransfer.files);\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\u00a0files = document.getElementById('selectfile').files;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ajax_file_upload(files);\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();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for(i=0; i&lt;file_obj.length; i++) {\u00a0 \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form_data.append('file[]', file_obj[i]);\u00a0 \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\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>L\u00f5puks kirjutage faili \u00fcleslaadimiseks serveripoolne kood <code>ajax.php<\/code>.<\/p>\n<p><strong>ajax.php<\/strong><\/p>\n<pre><code>&lt;?php\nforeach($_FILES['file']['name'] as $key=&gt;$val){\n\u00a0\u00a0\u00a0\u00a0$file_name = $_FILES['file']['name'][$key];\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ get file extension\n\u00a0\u00a0\u00a0\u00a0$ext = strtolower(pathinfo($file_name, PATHINFO_EXTENSION));\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ get filename without extension\n\u00a0\u00a0\u00a0\u00a0$filenamewithoutextension = pathinfo($file_name, PATHINFO_FILENAME);\n\u00a0\n\u00a0\u00a0\u00a0\u00a0if (!file_exists(getcwd(). '\/uploads')) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mkdir(getcwd(). '\/uploads', 0777);\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0$filename_to_store = $filenamewithoutextension. '_' .uniqid(). '.' .$ext;\n\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['file']['tmp_name'][$key], getcwd(). '\/uploads\/'.$filename_to_store);\n}\necho \"File(s) uploaded successfully\";\ndie;<\/code><\/pre>\n<p>See kood loob teie serverisse kataloogi &quot;\u00fcleslaadimised&quot; ja salvestab k\u00f5ik selles kataloogis olevad failid. Failide serverisse salvestamisel hoolitseme selle eest, et PHP-funktsiooni abil s\u00e4ilitataks iga \u00fcleslaaditud faili kordumatu nimi <code>uniqid()<\/code>.<\/p>\n<p>See k\u00f5ik on mitme faili \u00fcleslaadimine lohistamisfunktsiooni abil. Loodan, et saite sellest teada. Tahaksin kuulda teie m\u00f5tteid ja ettepanekuid allpool olevas kommentaaride jaotises.<\/p>\n<h4>seotud artiklid<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kujutise-optimeerimine-kasitooveebi-pildi-optimeerija-paketi-abil\/\" title=\"Kujutise optimeerimine k\u00e4sit\u00f6\u00f6veebi \/ pildi optimeerija paketi abil\" >Kujutise optimeerimine k\u00e4sit\u00f6\u00f6veebi \/ pildi optimeerija paketi abil<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-rakendada-tukis-uleslaadimist-php-s\/\" title=\"Kuidas rakendada t\u00fckis \u00fcleslaadimist PHP-s\" >Kuidas rakendada t\u00fckis \u00fcleslaadimist PHP-s<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/kuidas-lugeda-pilti-teksti-php-s\/\" title=\"Kuidas lugeda pilti teksti PHP-s\" >Kuidas lugeda pilti teksti PHP-s<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kas soovite oma veebisaidile rakendada mitme faili \u00fcleslaadimise funktsiooni? Selles artiklis uurime, kuidas lisada failide \u00fcleslaadija, mis v\u00f5imaldab<\/p>\n","protected":false},"author":1,"featured_media":21646,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[246],"tags":[842],"class_list":["post-25282","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25282","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/comments?post=25282"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25282\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21646"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=25282"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=25282"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=25282"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}