Quando creiamo un software o un sito Web che utilizza file, dobbiamo decidere come archiviarli, una delle possibilità è creare una cartella e archiviare i file lì e un'altra possibilità è archiviarli nel database, dobbiamo tenere a mente che un campo lungo blob può memorizzare fino a 4 gigabyte.
Il motore del database mySQL consente di utilizzare campi di blocco che memorizzano informazioni in formato binario. Questo formato consente di archiviare vari tipi di file, come Word, Excel, qualsiasi tipo di immagine, file pdf, ecc. In questo tutorial vedremo come archiviare i file in una tabella di database MySQL, i dati verranno inviati da un form html ed elaborati con PHP per salvare i file nel database.
Per realizzare gli esempi del tutorial avremo bisogno di un server remoto o locale che possa essere installato come abbiamo visto nel tutorial:
- Come installare Xampp per trasformare il tuo computer in un server web, in questo modo avremo il supporto per php e mysql e tutte le librerie necessarie.
Successivamente creeremo il database che memorizzerà i dati del veicolo, con foto e scheda tecnica in pdf, per questo creeremo da phpmyadmin l'esempio per essere chiamato un rivenditore. Successivamente creeremo la tabella delle auto.
CREA DATABASE rivenditore; Struttura della tabella per la tabella `autos` CREATE TABLE` autos` (`id` int (11) NOT NULL,` mark` varchar (150) DEFAULT '0', `model` varchar (150) DEFAULT '0',` photo` longblob) ENGINE = InnoDB DEFAULT CHARSET = latin1; Indici della tabella `autos` ALTER TABLE` autos` ADD PRIMARY KEY (`id`); AUTO_INCREMENT delle tabelle scaricate AUTO_INCREMENT della tabella `autos` ALTER TABLE` autos` MODIFY `id` int (11) NOT NULL AUTO_INCREMENT;Codice creazione tabella
Creiamo pagine PHP e form per la registrazione dei dati
Quindi creeremo un file config.php da dove ci collegheremo al database:
Config.php
Successivamente creeremo una pagina in PHP che avrà il compito di elencare tutti i record della tabella autos.
<? buttato fuori"
Marca | "; buttato fuori"Modello | "; buttato fuori"Foto | "; buttato fuori"Azioni | "; buttato fuori"|
". $ righe ['segno']." | "; buttato fuori"". $ righe ['modello']." | "; buttato fuori"Guarda la foto | "; buttato fuori"Modificare | Rimuovere | "; buttato fuori"
Il modulo per registrare i dati che ci consente di registrare una foto, per questo dobbiamo utilizzare elementi di file che ci consentono di selezionare un file dal browser e quindi elaborarlo con PHP e salvare i dati nei campi blob della nostra tabella auto da la banca dati.
Creazione del web sul nostro server
Creiamo il web all'interno di una cartella denominata concessionario sul nostro server. La pagina web conterrà il codice HTML e PHP, nella forma dobbiamo usare l'attributo enctype = "multipart/form-data" che indica che i file possono essere inviati tramite il modulo, se non ha l'attributo, i file non possono essere inviati.
Questa pagina si chiamerà high.php
Il codice è il seguente:
$ valore) {$ _POST [$ chiave] = mysql_real_escape_string ($ valore); } // leggiamo i dati dalla foto $ foto = $ _FILES ["foto"] ["tmp_name"]; $ nomefoto = $ _FILES ["foto"] ["nome"]; // questo è il file che aggiungeremo al campo blob $ foto = $ _FILES ['foto'] ['tmp_name']; // lo convertiamo in binario prima di salvarlo $ photo = mysql_real_escape_string (file_get_contents ($ _ FILES ["photo"] ["tmp_name"])); $ sql = "INSERT INTO` cars` (`make`,` model`, `photo`) VALUES ('{$ _POST [' make ']}', '{$ _POST [' model ']}', '$ Foto' )"; mysql_query ($ sql) o die (mysql_error ()); header ('Località: Listautos.php'); }?> var13 ->Successivamente dovremo mostrarlo per questo creeremo una pagina che interpreta il file binario e lo mostra, creeremo la pagina verfoto.php e indicheremo l'id della foto da mostrare.Marca:
Modello:
Foto:
Documento senza titoloPossiamo anche estrarre gli attributi del file se ne abbiamo bisogno nel modo seguente:
Il file viene archiviato temporaneamente in memoria durante il processo, se si verifica un errore i dati potrebbero essere persi o non registrati completamente, lo script PHP rimuove il file temporaneo dalla memoria al termine del processo, anche se non si conclude correttamente.Successivamente creeremo la pagina per modificare i dati di un'auto, che chiameremo edit.php
$ valore) {$ _POST [$ chiave] = mysql_real_escape_string ($ valore); } // leggiamo i dati dalla foto $ foto = $ _FILES ["foto"] ["tmp_name"]; $ nomefoto = $ _FILES ["foto"] ["nome"]; // questo è il file temporaneo $ foto = $ _FILES ['foto'] ['tmp_name']; // legge il file temporaneo in binario $ photo = mysql_real_escape_string (file_get_contents ($ _ FILES ["photo"] ["tmp_name"])); $ sql = "AGGIORNA` auto` SET `marca` = '{$ _POST [' marca ']}',` modello` = '{$ _POST [' modello ']}', `foto` = '$ foto' WHERE `id` = '$ id'"; mysql_query ($ sql) o die (mysql_error ()); header ('Località: Listautos.php'); } $ righe = mysql_fetch_array (mysql_query ("SELECT * FROM` autos` WHERE `id` = '$ id'")); ?> var13 ->Dobbiamo tenere presente che se eliminiamo un record, elimineremo anche i file e non potranno essere recuperati. Per eliminare un record creeremo la pagina elimina.php e useremo il seguente codice.Marca:
Modello:
Modello:
Foto:
>
Abbiamo realizzato un codice semplice senza molto design per spiegare come archiviare i file nei campi BLOB, uno degli svantaggi è che la dimensione del database cresce molto quando si archiviano i file in formato binario.
Uno dei vantaggi è che i file vengono salvati all'interno di una tabella, il che è meglio per motivi di sicurezza, poiché è possibile accedere ai file solo se si dispone dei permessi per gestire il database e non esiste una cartella fisica da cui scaricare i file o manipolarli da un attaccante. Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo