{"id":25129,"date":"2021-05-26T18:42:00","date_gmt":"2021-05-26T15:42:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=25129"},"modified":"2021-10-18T03:10:09","modified_gmt":"2021-10-18T00:10:09","slug":"trascina-e-rilascia-il-caricamento-di-file-utilizzando-javascript-e-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/trascina-e-rilascia-il-caricamento-di-file-utilizzando-javascript-e-php\/","title":{"rendered":"Trascina e rilascia il caricamento di file utilizzando JavaScript e PHP"},"content":{"rendered":"<p>Stai cercando di integrare la funzione di caricamento file drag and drop sul tuo sito web? Questa funzione \u00e8 intuitiva e riduce i clic degli utenti. In questo articolo, studiamo come aggiungere funzionalit\u00e0 per il caricamento di file drag and drop utilizzando JavaScript e PHP. Avrai anche l&#8217;input di file per sfogliare un file.<\/p>\n<p>L&#8217;interfaccia utente di caricamento del file finale sar\u00e0 simile all&#8217;immagine qui sotto.<\/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=\"Trascina e rilascia il caricamento di file utilizzando JavaScript e PHP\" ><\/a><\/p>\n<h3>Perch\u00e9 \u00e8 necessario trascinare e rilasciare la funzione di caricamento dei file?<\/h3>\n<p>Vogliamo sempre avere una migliore esperienza utente sul sito web. Offrire la funzionalit\u00e0 di trascinamento della selezione per caricare i file \u00e8 un&#8217;opzione facile da usare per i tuoi utenti. Molti siti Web popolari come Facebook, WordPress utilizzano gi\u00e0 questa funzione.<\/p>\n<p>Questa funzione ha un aspetto migliore rispetto al modo tradizionale di caricamento dei file. Migliora anche l&#8217;esperienza dell&#8217;utente poich\u00e9 l&#8217;utente trascina semplicemente il file e lo carica su un server.<\/p>\n<p>In questo tutorial, forniremo entrambe le opzioni agli utenti. \u00c8 possibile caricare il file utilizzando il trascinamento della selezione o tramite l&#8217;input del file.<\/p>\n<p>User\u00f2 Ajax per caricare file sul lato server. Usando Ajax la tua pagina non verr\u00e0 caricata. Invia semplicemente il file al server in background.<\/p>\n<h3>Integra l&#8217;uploader di file drag and drop<\/h3>\n<p>Per iniziare, scriviamo prima il codice HTML. Il seguente codice HTML avr\u00e0 un contenitore per il caricamento del file. Include anche un file CSS e JS che creer\u00f2 nei prossimi passaggi.<\/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>Nell&#8217;HTML sopra, ho usato i 2 eventi: ondrop e onclick. Definir\u00f2 i loro metodi nel <code>custom.js<\/code>file. Prima di ci\u00f2, aggiungiamo il codice CSS nel <code>style.css<\/code>file.<\/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>Il nostro obiettivo \u00e8 che quando un utente rilascia o sfoglia un file, il file dovrebbe essere caricato sul server. Per questo, devi scrivere un codice JavaScript che prende un file dal lato client e lo invia al server.<\/p>\n<p>Per gestire questo flusso, aggiungi il codice seguente nel <code>custom.js<\/code>file.<\/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>Il codice JavaScript scritto sopra rileva automaticamente le opzioni scelte dall&#8217;utente per caricare un file. Infine, la funzione <code>ajax_file_upload()<\/code>prende l&#8217;oggetto file e lo passa al file Ajax.<\/p>\n<h4>Carica file sul server<\/h4>\n<p>Nel file Ajax, scriver\u00f2 il codice effettivo che carica il file sul server. Crea un file chiamato <code>ajax.php<\/code>e aggiungi il codice seguente al suo interno.<\/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>Questo codice PHP verifica prima se la cartella denominata &#8216;uploads&#8217; esiste su un server. In caso contrario, crea una directory &quot;uploads&quot; e sposta il file al suo interno. Puoi modificare questo percorso di directory in base alle tue esigenze.<\/p>\n<p>Spero che tu capisca come aggiungere il caricamento di file trascina e rilascia utilizzando PHP e JavaScript. Fatemi sapere i vostri pensieri e suggerimenti nel commento qui sotto.<\/p>\n<h4>articoli Correlati<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/trascina-e-rilascia-il-caricamento-di-piu-file-utilizzando-javascript-e-php\/\" title=\"Trascina e rilascia il caricamento di pi\u00f9 file utilizzando JavaScript e PHP\" >Trascina e rilascia il caricamento di pi\u00f9 file utilizzando JavaScript e PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/it\/caricamento-di-file-ajax-con-php-e-jquery\/\" title=\"Caricamento di file Ajax con PHP e jQuery\" >Caricamento di file Ajax con PHP e 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\/it\/tinypng-comprimi-le-immagini-usando-php\/\" title=\"TinyPNG Comprimi le immagini usando PHP\">TinyPNG Comprimi le immagini usando PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <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 questo articolo, ti mostriamo come aggiungere il caricamento di file drag and drop per il tuo sito web. Insieme al trascinamento della selezione, diamo anche l&#8217;opzione per scegliere il file.<\/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":[208,248],"tags":[846],"class_list":["post-25129","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-elementor-7","category-javascript-7","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/25129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=25129"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/25129\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/21623"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=25129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=25129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=25129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}