Hur ladda upp en bild PHP med MySQL Insert

December 24

Hur ladda upp en bild PHP med MySQL Insert


PHP-skript ofta är ihopkopplade med en MySQL databas för att skapa innehåll på en webbplats. I fallet med ett fotogalleri, bilderna själva bor i en mapp på en server, och bildinformationen, kanske fotots filnamn, en bildtext och ett foto-ID-nummer, lagras i MySQL-databas. Att överföra en bild kräver att placera fotot i rätt mapp och skapa en SQL "Infoga" fråga för att placera bilden information i databasen. Använd PHP-skript för att utföra båda dessa rörelser.

Instruktioner

1 Skapa en form i kroppen av ett HTML-dokument som kan ladda upp en fil och acceptera användarinmatning för en "bildtext" och "photo_id" nummer. Ge knappen "Skicka" namnet attributet "upload". När användaren klickar på formuläret kommer en superglobal $ _POST array skapas som innehåller alla namn attribut i formuläret.

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

<P>

<Etikett för = "image"> Ladda upp foto: </ label>

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

</ P>

<P>

<Etikett för = "textfält"> Bildtext: </ label> <textarea name = "caption" COLS = "40" rader = "4" id = "caption" maxlength = "200" onKeyUp = "return ismaxlength (this)" > </ textarea> </ p>

</ Label>

</ P>

<P>

<Etikett för = "photo_id"> Image ordning: </ label>

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

</ P>

<P>

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

</ P>

</ Form>

2 Börja din PHP-kod på toppen av HTML-dokumentet och test för förekomsten av elementet "upload" i $ _POST matrisen. Dess existens kommer att utlösa din PHP-kod för att köra.

<? Php

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

3 Skapa en anslutning till MySQL-servern och en databas som kallas "prov." Använd din egen databas användarnamn och lösenord i stället för "användarnamn" och "lösenord."

$ Conn = new mysqli (localhost "," användarnamn "," lösenord "," prov ") eller dö (" error ");

4 Skapa en tabell som kallas "galleri" i "prov" databas och ställa upp med tre kolumnerna "filnamn", "caption" och "photo_id."

$ Query = "CREATE TABLE OM INTE FINNS galleri

(

filnamn varchar (30) NOT NULL,

bildtext varchar (500) NOT NULL,

photo_id int (3) NOT NULL

) ";

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

5 Lägg PHP-kod för att definiera en uppladdning katalog som heter "bilder". Skapa en mapp som heter "bilder" på samma plats där du sparar dokumentet. Ändra behörigheterna på mappen för att läsa och skriva tillgång. I Windows, högerklicka på mappen och välj fliken "Säkerhet". Placera en bock bredvid "Read" och "Write". På en Mac, tryck på "Command" och "I" och bläddra till "Ägande och behörigheter" under "Detaljer". Ändra inställningen för "Övriga" till "read / write". PHP-koden är:

define ( 'upload_dir "," bilder / ");

6 Lägg PHP-kod för att flytta bilden och tilldela filens namn till $ file variabeln.

move_uploaded_file ($ _ FILER [ 'bild'] [ 'tmp_name'], upload_dir $ _ FILER [ 'bild'] [ 'namn'].);

$ File = $ _FILES [ 'bild'] [ 'namn'];

7 Lägg din MySQL "Infoga" fråga att komma in i bildinformationen i databasen. Ställ en variabel som heter $ OK true om "Infoga" fråga är framgångsrik.

$ Sql3 = "INSERT INTO galleri (filnamn, bildtext, photo_id) VÄRDEN ($ file",?) ";

$ Stmt = $ gjutet> stmt_init ();

if ($ stmt-> förbereda ($ sql3)) {

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

$ OK = $ stmt-> execute ();

8 Lägga till ett visnings meddelande för att indikera framgång om $ OK variabeln är satt till true. Annars visar ett felmeddelande. Stäng din PHP kodning:

if ($ OK) {

echo ( "Du är foto har överförts"); }

else {

echo $response = $stmt->error;

}

}

?>

9 Spara din sida med en Php förlängning till din PHP-server eller en PHP-kod emulator på nätet. Du bör se ett bekant uppladdningsformulär. Välj en liten bild på skrivbordet, lägga till en prov bildtext och foto-ID-nummer och tryck på "Skicka". Du bör få ett meddelande högst upp på sidan i webbläsaren som ditt foto har överförts. Kontrollera din databas för en ny tabell som kallas "galleri" med den information du lämnat i formuläret. Den fullständiga koden visas på följande sätt:

<? Php

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

$ Conn = new mysqli (localhost "," användarnamn "," lösenord "," prov ") eller dö (" error ");

$ Query = "CREATE TABLE OM INTE FINNS galleri

(

filnamn varchar (30) NOT NULL,

bildtext varchar (500) NOT NULL,

photo_id int (3) NOT NULL

) ";

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

define ( 'upload_dir "," bilder / ");

move_uploaded_file ($ _ FILER [ 'bild'] [ 'tmp_name'], upload_dir $ _ FILER [ 'bild'] [ 'namn'].);

$ File = $ _FILES [ 'bild'] [ 'namn'];

$ Sql3 = "INSERT INTO galleri (filnamn, bildtext, photo_id) VÄRDEN ($ file",?) ";

$ Stmt = $ gjutet> stmt_init ();

if ($ stmt-> förbereda ($ sql3)) {

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

$ OK = $ stmt-> execute ();

}

if ($ OK) {

echo ( "Du är foto har överförts"); }

else {

echo $ svar = $ stmt-> fel;

}

}

?>

<! 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>

<Etikett för = "image"> Ladda upp foto: </ label>

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

</ P>

<P>

<Etikett för = "textfält"> Bildtext: </ label> <textarea name = "caption" COLS = "40" rader = "4" id = "caption" maxlength = "200" onKeyUp = "return ismaxlength (this)" > </ textarea> </ p>

</ Label>

</ P>

<P>

<Etikett för = "photo_id"> Image ordning: </ label>

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

</ P>

<P>

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

</ P>

</ Form>

</ Body>

</ Html>


        

Välkommen till dig för att skicka en kommentar:

            
            
            
            

© 2022 Astrixsoft.com | Contact us: webmaster# astrixsoft.com