{"id":25302,"date":"2021-05-27T15:02:00","date_gmt":"2021-05-27T12:02:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25302"},"modified":"2021-10-17T18:44:03","modified_gmt":"2021-10-17T15:44:03","slug":"ajaxi-faili-uleslaadimise-integreerimine-wordpressi","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/et\/ajaxi-faili-uleslaadimise-integreerimine-wordpressi\/","title":{"rendered":"Ajaxi faili \u00fcleslaadimise integreerimine WordPressi"},"content":{"rendered":"<p>Kas soovite rakendada AjaP faili \u00fcleslaadimist WordPressis? M\u00f5nikord peate t\u00e4itma toimingu, mis laadib faili \u00fcles Ajaxi kaudu. Selles artiklis uurime, kuidas Ajaxi faile \u00fcles laadida WordPressis.<\/p>\n<p>Ajaxi kaudu failide \u00fcleslaadimise eelis on see, et see v\u00e4hendab teie serveri koormust. Teie lehte ei laadita uuesti, mis salvestab serverisse lisak\u00f5nesid ja seega ka ribalaiust. Samuti lisab see teie veebisaidil parema kasutuskogemuse.<\/p>\n<p>Tavaliselt helistame Ajaxiga t\u00f6\u00f6tades URL-ile ja edastame andmeid v\u00f5i hankime andmeid m\u00e4\u00e4ratud URL-ile. WordPressil on Ajaxi toimingute tegemiseks veidi erinev viis. WordPressis helistame URL-ile, kuid andmete t\u00f6\u00f6tlemiseks kirjutatav kood l\u00e4heb funktsiooni. Seej\u00e4rel peab see funktsioon olema kaardistatud Ajaxi parameetrites edastatud &#8216;action&#8217; v\u00e4\u00e4rtusega. Segaduses? Vaatame seda tegevuses.<\/p>\n<h3>Ajaxi faili \u00fcleslaadimine WordPressis<\/h3>\n<p>Alustamiseks vajate failisisestusega vormi. Helistame faili valimisel Ajaxi k\u00f5ne ja laadime faili \u00fcles serverisse. Vormi loomiseks lisage allolev HTML oma lehemalli.<\/p>\n<pre><code>&lt;form class=\"fileUpload\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label&gt;&lt;?php _e('Choose File:'); ?&gt;&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" id=\"file\" accept=\"image\/*\" \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>J\u00e4rgmisena peate faili sisendi muutmise korral ajaxi k\u00f5ne tegema. Kuna edastame faili sisu Ajaxile, on teie kood <a href=\"https:\/\/codex.wordpress.org\/AJAX_in_Plugins\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress Ajaxi<\/a> tavalise jQuery koodiga v\u00f5rreldes veidi erinev .<\/p>\n<h4>Kaasa JS-fail WordPressi<\/h4>\n<p>Lisame k\u00f5igepealt JS-faili WordPressi keskkonda. See kood l\u00e4heb <code>functions.php<\/code>faili sisse v\u00f5i saidip\u00f5hisse pistikprogrammi.<\/p>\n<pre><code>function aw_scripts() {\n\u00a0\u00a0\u00a0\u00a0\/\/ Register the script\n\u00a0\u00a0\u00a0\u00a0wp_register_script( 'aw-custom', get_stylesheet_directory_uri(). '\/js\/custom.js', array('jquery'), '1.1', true );\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ Localize the script with new data\n\u00a0\u00a0\u00a0\u00a0$script_data_array = array(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'ajaxurl' =&gt; admin_url( 'admin-ajax.php' ),\n\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\u00a0wp_localize_script( 'aw-custom', 'aw', $script_data_array );\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ Enqueued script with localized data.\n\u00a0\u00a0\u00a0\u00a0wp_enqueue_script( 'aw-custom' );\n}\n\u00a0\nadd_action( 'wp_enqueue_scripts', 'aw_scripts' );<\/code><\/pre>\n<h4>Laadige fail serverisse \u00fcles<\/h4>\n<p>Olete vormi ja JS-failiga valmis. N\u00fc\u00fcd lisage JS-faili allpool olev kood, mis saadab faili sisu Ajaxi kaudu serveri poolele.<\/p>\n<p><strong>custom.js<\/strong><\/p>\n<pre><code>jQuery(function($) {\n\u00a0\u00a0\u00a0\u00a0$('body').on('change', '#file', function() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this = $(this);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0file_data = $(this).prop('files')[0];\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form_data = new FormData();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form_data.append('file', file_data);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form_data.append('action', 'file_upload');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$.ajax({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0url: aw.ajaxurl,\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\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\u00a0$this.val('');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0alert('File uploaded successfully.');\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});\u00a0\u00a0\u00a0 \n});<\/code><\/pre>\n<p>\u00dclaltoodud koodi oluline osa on see, et lisame objektile form_data toimingu &#8216;file_upload&#8217;. Vormiandmete j\u00e4tkamiseks kasutame seda toimingut \u201efile_upload&quot;.<\/p>\n<p>Aastal <code>functions.php<\/code>, kaardistada tegevus koos Ajax j\u00e4rgmiselt:<\/p>\n<pre><code>add_action( 'wp_ajax_file_upload', 'file_upload_callback' );\nadd_action( 'wp_ajax_nopriv_file_upload', 'file_upload_callback' );<\/code><\/pre>\n<p>Kui kirjutate selle koodi pistikprogrammis, ei pea te teist avaldust kirjutama. Siin lisame &#8216;wp ajax_&#8217; ja &#8216;wp_ajax_nopriv &#8216; juurde toimingu v\u00e4\u00e4rtuse, mis on &#8216;file_upload&#8217;. Teine parameeter &#8216;file_upload_callback&#8217; on tagasihelistusmeetod, millel on failide \u00fcleslaadimiseks tegelik kood.<\/p>\n<pre><code>function file_upload_callback() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$arr_img_ext = array('image\/png', 'image\/jpeg', 'image\/jpg', 'image\/gif');\n\u00a0\u00a0\u00a0\u00a0if (in_array($_FILES['file']['type'], $arr_img_ext)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$upload = wp_upload_bits($_FILES[\"file\"][\"name\"], null, file_get_contents($_FILES[\"file\"][\"tmp_name\"]));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/$upload['url'] will gives you uploaded file path\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0wp_die();\n}<\/code><\/pre>\n<p>Kasutan faili serverisse \u00fcleslaadimiseks meetodit <a href=\"https:\/\/codex.wordpress.org\/Function_Reference\/wp_upload_bits\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_upload_bits<\/a>. See meetod salvestab faili otse kataloogi wp-content \/ uploads.<\/p>\n<p>Proovige faili \u00fcles laadida. Teie fail tuleks \u00fcles laadida kausta wp-content \/ uploads \/. Pange t\u00e4hele, et leiate oma faili \u00fcleslaadimiste kataloogi praeguse kuu kausta.<\/p>\n<h3>Laadige mitu faili \u00fcles WordPressi Ajaxi abil<\/h3>\n<p>Siiani oleme arutanud \u00fche faili \u00fcleslaadimist Ajaxi kaudu. V\u00f5ib tekkida olukord, kui soovite Ajaxi abil mitu faili \u00fcles laadida. Vaatame, kuidas seda saavutada.<\/p>\n<p>Mitme faili \u00fcleslaadimiseks peate \u00fclaltoodud HTML-, JS- ja PHP-koodis veidi muutma.<\/p>\n<p>HTML pakub atribuuti &#8216;mitu&#8217;, mis v\u00f5imaldab kasutajal failisisestuses valida mitu faili.<\/p>\n<p><strong>HTML-kood<\/strong><\/p>\n<pre><code>&lt;form class=\"fileUpload\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;div class=\"form-group\"&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label&gt;&lt;?php _e('Choose File:'); ?&gt;&lt;\/label&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" id=\"file\" accept=\"image\/*\" multiple \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<p>Kasutajana, kes valib mitu faili, peame muutma JavaScripti koodi, mis viib l\u00e4bi iga faili ja loob sellest massiivi.<\/p>\n<p><strong>custom.js<\/strong><\/p>\n<pre><code>jQuery(function($) {\n\u00a0\u00a0\u00a0\u00a0$('body').on('change', '#file', function() {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this = $(this);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0file_obj = $this.prop('files');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form_data = new FormData();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for(i=0; i&lt;file_obj.length; i++) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form_data.append('file[]', file_obj[i]);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0form_data.append('action', 'file_upload');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$.ajax({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0url: aw.ajaxurl,\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\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\u00a0$this.val('');\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0alert('File(s) uploaded successfully.');\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>Ja l\u00f5puks, Ajaxi tagasihelistamisfunktsioonis uurime failimassiivi ja laadime iga faili serverisse \u00fcles.<\/p>\n<pre><code>function file_upload_callback() {\n\u00a0\u00a0\u00a0\u00a0$arr_img_ext = array('image\/png', 'image\/jpeg', 'image\/jpg', 'image\/gif');\n\u00a0\n\u00a0\u00a0\u00a0\u00a0for($i = 0; $i &lt; count($_FILES['file']['name']); $i++) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (in_array($_FILES['file']['type'][$i], $arr_img_ext)) {\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$upload = wp_upload_bits($_FILES['file']['name'][$i], null, file_get_contents($_FILES['file']['tmp_name'][$i]));\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/$upload['url'] will gives you uploaded file path\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0wp_die();\n}<\/code><\/pre>\n<p>Loodan, et saite teada AjaPX-i failide \u00fcleslaadimisest WordPressis. 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\/kuidas-laadida-wordpressi-postitusi-ajax-iga\/\" title=\"Kuidas laadida WordPressi postitust AJAX-iga\">Kuidas laadida WordPressi postitust AJAX-iga<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/jquery-ajaxi-kasutamine-wordpressis\/\" title=\"JQuery Ajaxi kasutamine WordPressis\">JQuery Ajaxi kasutamine WordPressis<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/et\/pukseerige-faili-uleslaadimine-javascripti-ja-php-abil\/\" title=\"Pukseerige faili \u00fcleslaadimine JavaScripti ja PHP abil\">Pukseerige faili \u00fcleslaadimine JavaScripti ja PHP abil<\/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 integreerida Ajaxi faili \u00fcleslaadimise WordPressi? Selles artiklis v\u00f5tan n\u00e4ite ja selgitan teile, kuidas faili Ajaxi abil \u00fcles laadida<\/p>\n","protected":false},"author":1,"featured_media":21665,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[609],"tags":[842],"class_list":["post-25302","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-5","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25302","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=25302"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/posts\/25302\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media\/21665"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/media?parent=25302"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/categories?post=25302"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/et\/wp-json\/wp\/v2\/tags?post=25302"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}