Come caricare un'immagine per PHP con MySQL inserto

April 13

Come caricare un'immagine per PHP con MySQL inserto


script PHP spesso sono abbinati a un database MySQL per generare contenuti su un sito web. Nel caso di una galleria fotografica, le immagini stesse risiedono in una cartella su un server, e le informazioni di foto, forse il nome del file della foto, una didascalia e una foto numero ID, vengono memorizzati nel database MySQL. Caricando una foto richiede mettendo la foto nella cartella corretta e la creazione di una query SQL "Inserisci" per inserire le informazioni dell'immagine nel database. Utilizzare script PHP per realizzare entrambi questi movimenti.

istruzione

1 Creare un modulo nel corpo di un documento HTML che può caricare un file e accettare l'input dell'utente per una "voce" e il numero "photo_id". Dare il pulsante "Invia" l'attributo nome di "Upload". Quando l'utente fa clic sul modulo, verrà creata una superglobale $ array _POST che include tutti gli attributi nome del modulo.

<Form action = "" method = "post" enctype = "multipart / form-data" name = "uploadImage" id = "uploadImage">

<P>

<Label for = "image"> Carica foto: </ label>

<Input type = "file" name = "immagine" id = "image" />

</ P>

<P>

<Label for = "campo di testo"> Didascalia: </ label> <nome textarea = "voce" cols = righe "40" = "4" id = "caption" maxlength = "200" onkeyup = "tornare ismaxlength (questo)" > </ textarea> </ p>

</ Label>

</ P>

<P>

<Label for = "photo_id"> Richiesta di immagini: </ label>

<Input name = "photo_id" type = "text" id = "photo_id" />

</ P>

<P>

<Input type = "submit" name = "upload" id = "upload" value = "Upload" />

</ P>

</ Form>

2 Iniziate il vostro codice PHP nella parte superiore del documento HTML e di prova per l'esistenza dell'elemento di "caricare" nella matrice $ _POST. La sua esistenza attiverà il codice PHP per l'esecuzione.

<? Php

if (array_key_exists ( 'upload', $ _ POST)) {

3 Creare una connessione al server MySQL e un database chiamato "campione". Utilizzare il proprio nome utente e la password del database al posto della "username" e "password".

$ Conn = new mysqli ( 'localhost', 'username', 'password', 'campione') or die ( "errore");

4 Creare una tabella denominata "galleria" all'interno del database "campione" e configurarlo con tre colonne etichettate "nome di file", "voce" e "photo_id".

$ Query = "CREATE TABLE SE NON ESISTE galleria

(

filename VARCHAR (30) NOT NULL,

caption varchar (500) NOT NULL,

photo_id int (3) NOT NULL

) ";

$ Risultato = mysqli_query ($ conn, $ query);

5 Aggiungere il codice PHP per definire una directory di upload chiamato "immagini". Creare una cartella denominata "images" nella stessa posizione in cui si sta salvando il documento. Modificare le autorizzazioni per la cartella di lettura e scrittura. In Windows, fare clic destro sulla cartella e selezionare la scheda "Protezione". Mettere un segno di spunta accanto a "leggere" e "scrivere". Su un Mac, premi "Comando" e "I" e scorrere fino a "Proprietà e permessi" sotto "Dettagli". Modificare l'impostazione per "altri" a "lettura / scrittura." Il codice PHP è:

define ( 'upload_dir', 'images /');

6 Aggiungere il codice PHP per spostare la foto e assegnare il nome del file alla variabile $ file.

move_uploaded_file ($ _ FILES [ 'immagine'] [ 'tmp_name'], upload_dir $ _ FILES [ 'immagine'] [ 'name'].);

$ File = $ _FILES [ 'immagine'] [ 'name'];

7 Aggiungi il tuo MySQL Query "Inserisci" per inserire le informazioni nel database di foto. Impostare una variabile denominata $ OK true se la query "Inserisci" va a buon fine.

$ SQL3 = "INSERT INTO galleria (nome del file, la didascalia, photo_id) VALORI ( '$ file',,?)";

$ Stmt = $ conn-> stmt_init ();

if ($ stmt-> prepare ($ SQL3)) {

$stmt->bind_param('ss', $_POST['caption'], $_POST['photo_id']);

$ OK = $ stmt-> execute ();

8 Aggiungere un messaggio sul display per indicare il successo se la variabile OK $ è impostata su true. In caso contrario, visualizzare un messaggio di errore. Chiudere il codice PHP:

if ($ OK) {

echo ( "Sei foto è stata caricata con successo"); }

altro {

echo $response = $stmt->error;

}

}

?>

9 Salvare la pagina con estensione .php al server PHP o un codice PHP emulatore on-line. Si dovrebbe vedere un modulo di upload familiare. Scegli una piccola foto sul tuo desktop, aggiungere un numero campione di didascalia con la foto e premere "Invia". Si dovrebbe ricevere un messaggio nella parte superiore della pagina nel browser che la foto è stata caricata con successo. Controllare il database per una nuova tabella denominata "galleria" con le informazioni che hai inviato in forma. Il codice completo è la seguente:

<? Php

if (array_key_exists ( 'upload', $ _ POST)) {

$ Conn = new mysqli ( 'localhost', 'username', 'password', 'campione') or die ( "errore");

$ Query = "CREATE TABLE SE NON ESISTE galleria

(

filename VARCHAR (30) NOT NULL,

caption varchar (500) NOT NULL,

photo_id int (3) NOT NULL

) ";

$ Risultato = mysqli_query ($ conn, $ query);

define ( 'upload_dir', 'images /');

move_uploaded_file ($ _ FILES [ 'immagine'] [ 'tmp_name'], upload_dir $ _ FILES [ 'immagine'] [ 'name'].);

$ File = $ _FILES [ 'immagine'] [ 'name'];

$ SQL3 = "INSERT INTO galleria (nome del file, la didascalia, photo_id) VALORI ( '$ file',,?)";

$ Stmt = $ conn-> stmt_init ();

if ($ stmt-> prepare ($ SQL3)) {

$stmt->bind_param('ss', $_POST['caption'], $_POST['photo_id']);

$ OK = $ stmt-> execute ();

}

if ($ OK) {

echo ( "Sei foto è stata caricata con successo"); }

altro {

$ Risposta echo = $ stmt-> errore;

}

}

?>

<! DOCTYPE HTML PUBLIC "- // W3C // DTD XHTML 1.0 Transitional // EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<Html ">

<Head>

</ Head>

<Body>

<Form action = "" method = "post" enctype = "multipart / form-data" name = "uploadImage" id = "uploadImage">

<P>

<Label for = "image"> Carica foto: </ label>

<Input type = "file" name = "immagine" id = "image" />

</ P>

<P>

<Label for = "campo di testo"> Didascalia: </ label> <nome textarea = "voce" cols = righe "40" = "4" id = "caption" maxlength = "200" onkeyup = "tornare ismaxlength (questo)" > </ textarea> </ p>

</ Label>

</ P>

<P>

<Label for = "photo_id"> Richiesta di immagini: </ label>

<Input name = "photo_id" type = "text" id = "photo_id" />

</ P>

<P>

<Input type = "submit" name = "upload" id = "upload" value = "Upload" />

</ P>

</ Form>

</ Body>

</ Html>