Presentazione.
Carica file su un server web; semplice, quanto può essere difficile? Sicuramente molti lo diranno, ma quelli che sono appena agli inizi in questo mondo sicuramente si saranno chiesti come si fa, voglio solo arrivare a loro, quindi se stai iniziando in PHP o sei un utente avanzato che ha perso questo codice e non lo fa vuoi usarlo di nuovo scrivi, quindi ti invito a continuare a leggere, perché in questo articolo condividerò il mio codice per caricare file in modo rapido e semplice, per questo userò HTML5, PHP e aggiungerò un tocco attraente con boostrap. In questo caso ti spiego come caricare immagini .jpg.webp o .png.webp ma con modifiche minime puoi caricare documenti, audio e anche video se lo desideri.
Cosa ci serve?a) Un computer
b) Un server locale per testare e accedere al database (uso XAMPP)
c) Un editor di codice (userò il testo sublime 3)
Passo 1
Vado nella directory htdocs di Xampp e creo una nuova cartella che chiamerò "upload".
INGRANDIRE
All'interno di questo ne creerò un altro chiamato "files" e uno aggiuntivo chiamato "php".
INGRANDIRE
Passo 2
Ora nell'editor del codice creerò un nuovo file che salverò come index.php che conterrà poi il form html per caricare i file.
INGRANDIRE
Passaggio 3
Aggiungerò i riferimenti online a boostrap.
INGRANDIRE
Passaggio 4
Dentro il corpo creerò un, all'interno di questo a
INGRANDIRE
Passaggio 5
Ora dentroAggiungo un salto in macchina
un titolo cone inizierò a strutturare il nostro piccolo form per il caricamento…
INGRANDIRE
Vedrai che ho assegnato il metodo "POST" all'etichetta e nell'azione abbiamo aggiunto un punto interrogativo "?" il che farà sì che quando si invia il modulo i suoi valori vengano restituiti a questa stessa pagina, inoltre ho aggiunto un attributo chiamato "encytipe" con il valore "multipart / form-data" questo come regola generale dovrebbe essere usato in tutti moduli che inviano file .
Passaggio 6
Poiché abbiamo l'etichetta pronta, possiamo aggiungere il campo di cui abbiamo bisogno e un pulsante che invierà il modulo da elaborare.
Per questo aggiungeremo un'etichettae conterrà un tipo di input "file" che avrà il compito di catturare il file che vogliamo caricare …
INGRANDIRE
Come puoi vedere, abbiamo assegnato il nome "file" e una classe chiamata "form-control", che appartiene al bootstrap e serve a dare una corretta spaziatura ai campi di testo contenuti all'interno di un form. Da parte sua, aggiungiamo anche un attributo "richiesto" che impedirà l'invio del modulo se questo campo è vuoto.
Passaggio 7
Successivamente aggiungeremo un'etichetta come decorazione, che ci aiuterà a tracciare una linea che separi l'input precedente dal pulsante che invierà il modulo.
INGRANDIRE
Passaggio 8
Come vedrai appena sotto l'etichetta abbiamo inserito un input di tipo "submit" a cui aggiungiamo le classi boostrap "btn btn-primary center-block", di cui la prima ci aiuta a dare una forma più accattivante al nostro pulsante, il secondo lo posiziona nel colore primario di boostrap che è un blu intenso e il terzo è utilizzato per posizionare questo elemento con una regolazione centrata, nota che abbiamo chiamato questo pulsante "su".
Passaggio 9
Abbiamo già il nostro html pronto, quindi ora scriveremo alcune righe in php che si occuperanno di caricare i nostri file, per questo creeremo un nuovo file upload.php che salverò nel "php" cartella che creiamo nel passaggio 2.
Passaggio 10
La prima cosa che faremo nel nostro file php è convalidare se il pulsante è stato premuto
"Carica" e se il campo "file" non è vuoto, per questo scriveremo quanto segue …
INGRANDIRE
Passaggio 11
Una volta verificato ciò, utilizzeremo un ciclo "foreach" per ottenere le proprietà del file che andremo a caricare.Come accennato in precedenza, in questo caso parleremo di immagini in formato .jpg.webp o .png.webp.
INGRANDIRE
Passaggio 12
Creeremo 2 variabili chiamate "$ file" e "$ destinazione", la prima conterrà il file che stiamo caricando e la seconda assegneremo il percorso dove verrà salvato e il nome con cui verrà memorizzato , come puoi immaginare il percorso di archiviazione sarà la directory "files" che è stata creata nel passaggio 2, mentre il nome con cui verrà archiviato verrà dall'array $ FILES che abbiamo costruito nel passaggio precedente con il foreach …
INGRANDIRE
Passaggio 13
Ora dobbiamo convalidare che il file che viene caricato sia conforme ai parametri desiderati, ho precedentemente indicato che voglio caricare immagini in .jpg.webp o .png.webp, ma questo è il momento di lasciarlo definito nel nostro codice. Sempre come misura personale voglio che la dimensione massima delle immagini da caricare sia di 2Mb, quindi colgo l'occasione per indicarla anche io, ma ciò nonostante questa dimensione massima non può essere definita in MB quindi dovremo convertirla in byte…
INGRANDIRE
Poiché abbiamo stabilito le condizioni per poter elaborare i file, ora dobbiamo definire cosa ne faremo. In questo caso voglio che questi file vengano copiati nella cartella "files" ma voglio anche che il percorso di ciascun file venga archiviato in un database in modo che in seguito possa creare un elenco o una galleria con quei file.
Detto questo dovremo creare un database, e al suo interno una tabella con dei campi per contenere il percorso di ogni file, un file di connessione a quel database e ovviamente includere all'interno del nostro upload.php un'istruzione SQL che inserisca il percorso di ogni file all'interno della banca dati. Fallo!.
Passaggio 14
Con xampp attivo andiamo nel nostro browser e inseriamo l'indirizzo "localhost/phpmyadmin" una volta entrati con il nostro username e password procederemo alla creazione di un nuovo database, lo chiamerò "upload" e assegnerò una corrispondenza "utf8_spanish_ci" .
INGRANDIRE
Passaggio 15
All'interno creeremo una tabella che chiamerò "rotte" con solo 2 colonne, un ID a incremento automatico e un altro chiamato route di tipo varchar.
INGRANDIRE
INGRANDIRE
Abbiamo già il database e la tabella di cui abbiamo bisogno ma ora dobbiamo connetterci a questo database, per questo andrò al mio editor di codice e creerò 2 nuovi file e li salverò come "config.php" e "connection.php" all'interno la cartella php che abbiamo già.
INGRANDIRE
INGRANDIRE
Passaggio 16
Ora torneremo al nostro file "upload.php" e includeremo in esso il file "connection.php"
INGRANDIRE
Passaggio 17
Quindi aggiungeremo la funzione in modo che il file che carichiamo venga copiato nella directory "files" e inseriremo il percorso o il collegamento a questo file nel database. Quindi possiamo aggiungere un messaggio di conferma se tutto va bene e un messaggio di avviso nel caso in cui non stiamo caricando il tipo di file corretto o superi il limite massimo di MB.
INGRANDIRE
Passaggio 18
Torneremo al nostro file "index.php" e dopo il tag di chiusura "" inseriremo un include nel file upload.php
INGRANDIRE
Passo 19
Abbiamo già pronto il nostro codice, il database è stato creato e la connessione è configurata, ora vediamo qual è il risultato e controlliamo se funziona correttamente.
Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo
Questo tutorial ti ha aiutato?
AltrimentiAIUTA A MIGLIORARE QUESTO TUTORIAL!
Pensi di poter correggere o migliorare questo tutorial? Puoi inviare la tua Edizione con le modifiche che ritieni utili.0 utenti hanno modificato questo tutorial. Modifica e diventa un esperto riconosciuto!
Modifica questo tutorial
TUTORIAL SIMILI
Archivia i file nei campi BLOB con PHP e MySQLGenerazione di file PDF con PHP
8 commenti
David sanz
29 agosto 2015 23:34Ho adorato il tutorial, è molto interessante sapere come caricare file tramite PHP. Grazie Ronny
- Rapporto
Ronny Bonillo
30 agosto 2015 00:50Prego Davide, spero ti sia utile… Un saluto…
- Rapporto
Ruben Gandia
03 set 2015 18:45
Ronny, ho usato il tuo tutorial per correggere un errore che stavo facendo durante il caricamento dei file tramite PHP. Mi connetto solo per darti il Grazie e che ti ho anche segnato Segui.
- Rapporto
Ronny Bonillo
03 set 2015 18:47
Prego Ruben, grazie per avermi seguito! mi fa piacere che tu lo abbia trovato utile…
- Rapporto
Diego Agudelo Jimenez
16 febbraio 2016 22:56
Ottimo aiuto
- Rapporto
Ronny Bonillo
mar 02 2016 06:24;-)
- Rapporto
MartinPm
05 agosto 2016 20:16
Che ne dici di Ronny, puoi aiutarmi a ottenere questo errore …
Avviso: Indice non definito: file in C:\xampp\htdocs\upload\php\upload.php on line3
Avvertenza: argomento fornito per foreach() inC: \ xampp \ htdocs \ upload \ php \ upload.php sulla riga 3 non valido
Avviso: Indice non definito: file in C:\xampp\htdocs\upload\php\upload.php on line7
Avviso: indice non definito: file in C:\xampp\htdocs\upload\php\upload.php on line8
Avviso: indice non definito: file in C:\xampp\htdocs\upload\php\upload.php on line10
- Rapporto
josenumis
Dic2021-202221-2022 17:23Ciao, ho copiato così com'è ma cambiando il nome del server ecc (che non è locale) e non carica i file o mi dà un errore (mi lascia selezionare il file) se non lo ha selezionato, dice me per selezionarlo ma quando lo invio al server non fa nulla qualcuno può inviarmi i codici per verificare se c'è qualcosa che non va)? Penso che vada tutto bene. La mia email è [email protected] grazie mille.
- Rapporto
- Crea un accountIscriviti GRATIS per avere il tuo account SolveticRegistra un account
- IdentificareHai già un account? Accedi quiIdentificami nel mio Account
Informazione
- Pubblicato 27 agosto 2015 21:10
- Aggiornato 28 agosto 2015 08:21
- visite 15,8 K
- LivelloAvanzate
Ultimi tutorial PHP
- Come installare pHpMyAdmin su Ubuntu 20.04
- Installa Laravel PHP Framework CentOS 8 con NGINX
- Installa e configura OPcache per le prestazioni PHP su CentOS 7
- Come installare Laravel PHP Web Framework su CentOS