Uploade billeder eller andre filer ved hjælp af php og mysql

Relaterede dokumenter
Tagwall med Php & MySQL

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

Begrynder til at lave log ind system

Gæstebog med validering opbygget med MySQL

Loginsystem (med MySQL)

Ratingsystem i PHP og MySQL

Simpel upload af filer

Med register_globals = On får du automatisk adgang til en række variabelnavne i dit script.

I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke

Upload af billeder/filer for nybegyndere Del. 2

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Introduktion til SQL queries

Dynamisk PHP design OPDATERET

Loginsystem med PHP4, klasser, sessions og MySQL database

Web 2.0. World Wide Web (www)

Afsending af s vha. ASP

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

Reeksamen, DSDS, forår 2008

Database design for begyndere

I denne artikel vil jeg gennemgå hvordan en side for RSS "Live Bogmærke" kan se ud.

Arrays i PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 04. Feb 2009 af taskmgr I kategorien Programmering / PHP

Log ind med PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 09. May 2011 af dab93 I kategorien Programmering / Andre

Dette er en grundlæggende artikel til hvordan du laver et lille community, med forskelige

The Design Diaries. Link til blog

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

Design Diaries.

Dokumentering af umbraco artikeleksport:

Foto-Applikation Dokumentation. Et Kod-i-Ferien projekt

The Design Diaries Project 3 2. Semester. Blog om designprincipper

Kontrol-strukturer i PHP

Java web applikationer med Tomcat

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.

SQL for MySQL-begyndere

PHP Pagination. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 01. May 2011 af dab93 I kategorien Programmering / Andre

Eksamen, DSDS, forår 2009

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Som sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste

De skjulte input typer:

Ekstra hastighed med array's i Excel-VBA

Session-highjack...et halvt skridt mod en modgift

SESSION med PHP. En let begynderguide som kan føre dig ind i en verden af muligheder. Denne guide er oprindeligt udgivet på Eksperten.

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

I denne artikel, vil der blive gennemgået de grundlæggende PHP-funktioner, såsom udskrift til skærmen, tid og dato og if-sætningen.

At klippe en streng over på det mest hensigtsmæssige sted

Sådan skriver du artikler til Eksperten!

Eksamen, DSDS, efterår 2007

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

SIDEN PÅ WORDPRESS.COM

Sådan kan du sende data fra din egen hjemmeside til JitBesked via en HTML-JDF.

I denne artikel vil du ved hjælp af arrays kunne afrunde et decimaltal til et helt tal.

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Denne rapport er skrevet af:

Da jeg selv bruger Windows, så vil programmer osv. være til Windows, og beskrevet ud fra en Windowsbrugers

Eksamen, DSDS, forår 2008

Eksamen, DSDS, efterår 2008

PROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Views etc. Databaser

GUIDE TIL OPRETTELSE AF SIDER OG INDHOLD I UMBRACO ONLINE BETJENING

Det er primært relevant for dem hvor der arbejdes på en gammel bærbar computer, som ikke har en stærk processer og nok ram, at gøre godt med.

Database programmerings tips

Website sikkerhed SQL Injections og mere...

Delphi og Databaser for begyndere

Singleton pattern i Java

PHP Crash course. Databaser

Log ind. Opret fortælling. Skriv tekst. Upload billeder. Indsæt billeder. Indsæt links. Indsæt citat. Indsæt grå boks

Guide. Administration af FDF.dk/Nyborg. 1. Udgave Ide og layout Christoffer S. Rasmussen

Databaseadgang fra Java

Koden i denne guide vil kun virke i Flash MX 2003 og MX ikke ældre versioner!

A11: Last Year s Exam

Sådan får du en kirkegård på nettet i DKI-modellen!

SKOLELOGIN KNANPU1 FULDE NAVN ANAN PUSKAR URL TIL LØSNING URL TIL PORTFOLIO

Ordbøgerne.dk. Navne: Andreas Foldager og Rasmus Bjerring Pedersen Fag: IT B Lærer: Karl Bjarnason Afleveringsdato:

2. SEMESTER PROJEKT 3 INTERAKTIONSUDVIKLING

Denne artikel er til dem der ønsker at vide mere om hvad CSS er og hvad CSS kan bruges til hvad angår WWW.

Vejledning til redigering via iserasuaat.gl/typo3 - både frontend og backend

Flerbruger miljø, opdel database

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

Procesbeskrivelse - Webprogrammering

8.0 Distriktshjemmesider

Indholdsfortegnelse If-sætningen... 3 Opgaver... 4 OR, AND sammen med if-sætningen... 5 Rand() funktion... 5 Opgave... 5 Include() funktionen...

Arkitektur for begyndere

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Data lagring. 2. iteration (implement backend)

Sådan kommer du nemt i gang med Joomla!

Microsoft Log Parser, Windows logfil analyse

Undtagelseshåndtering i C#

PHP kode til hjemmeside menu.

klient Webside Forespørgsel/ Nye data Python program Database kommando svar Database

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Denne artikel er en detaljeret gennemgag af det fundamentale i batchfiler til hjemmebrug :-) FEEL THE POWER! ;-)

Vejledning I Oprettelse Af Indlæg Og Billedgalleri På BBK s Hjemmeside

JSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007

Du har nu en genvej på dit skrivebord hen til den mappe hvor dine filer med bøgerne kommer til at ligge, den virkelige sti = c:\bøger.

Indholdsfortegnelse. Side 1 af 8

Transkript:

Denne guide er oprindeligt udgivet på Eksperten.dk Uploade billeder eller andre filer ved hjælp af php og mysql Denne artikel viser hvordan man kan uploade et billede eller en anden fil, og tilknytte det til noget andet data i en database. Artiklen forudsætter et basalt kenskab til brugen af phpmyadmin. GD-lib behandles ikke. Skrevet den 03. Feb 2009 af sorenbs I kategorien Programmering / PHP Efter selv at have brugt lang tid på at finde et system til at uploade billeder, og set mange andre her på Eksperten lede efter det samme, fandt jeg på at skrive denne artikel. Scriptet består af tre dele. For det første den side hvor formularen er på, og som brugeren kommer til at se, og for det andet den side der tager sig af at sætte dataene ind i databasen, undersøge billedet og placere det i den rigtige mappe, og derefter sende brugeren videre til en anden side. Og til sidst en configurationsdel, hvorfra adgang til databasen, billedets max størrelse og så videre sættes op. Scriptet vil være kommenteret løbende. kommentarene står /*Sådan her*/ Formulardelen kunne for eksempel se således ud: <form action="upload.php" method="post" enctype="multipart/form-data" name="form1"> Overskrift <input name="overskrift" type="text"> Tekst <textarea name="tekst" cols="40" rows="5"></textarea> Billede <input name="userfile" type="file"> Navn <input name="navn" type="text"> <input name="gem" type="submit" value="gem"> </form> Formularen kan formes præcist som man vil, og laves meget mere elegant. Det eneste viktige er at action er sat til at pege på den side der skal behandle dataene, og at name i file-feltet er sat til userfile. Nu kommer det spændende, den side der skal tage imod billedet, og de andre data, og indsætte dem i

databasen, og kopiere billedet til den rigtige mappe. Denne fil hedder i dette eksempel upload.php og skal se således ud: <?php /* inkludere konfigurationsfilen, som vi opretter senere */ include "config.php"; /* opretter forbindelse til databasen ved hjælp af oplysninger fra konfigurationsfilen */ $db = mysql_connect($db_host,$db_user,$db_pass); mysql_select_db ($db_name) or die ("Cannot connect to database"); /* Checker om der er uploadet en fil */ if ($HTTP_POST_FILES['userfile']['tmp_name'] && $HTTP_POST_FILES['userfile']['tmp_name']!= "none") { /* Hvis det er tilfældet sætter vi nogle variabler */ $uploadfil = $HTTP_POST_FILES['userfile']['tmp_name']; $uploadname = $HTTP_POST_FILES['userfile']['name']; $uploadsize = $HTTP_POST_FILES['userfile']['size']; $uploadtype = $HTTP_POST_FILES['userfile']['type']; /* Hvilken type fil arbejder vi med? */ $ext = strtolower(end(explode(".", $HTTP_POST_FILES['userfile']['name']))); /* hvis filen er et billede. Hvis du vil tillade flere filtyper, skal du bare angive filtypen som herunder. */ if($ext == "jpg" $ext == "jpeg" $ext == "gif" $ext == "bmp") { /* hvis filen er større end eller lig med den i config.php angivne maxstørelse */ if ($uploadsize >= $upload_maxsize) { echo "Dit billede fylder $uploadsize <br> og må højest fylde $upload_maxsize" /* Ellers */ /* sætter variablen tid */ $tid = time(); /* Her giver vi billedet et andet navn, så der ikke kommer to ens navne... navnet har formattet "det-aktuelle-tidspunkt_et-tilfældigt-tal.endelse" */ $nytnavn = $tid. "_". rand(1, 1000000). ".". $ext; /* Flytter billedet til den rette placering, med det nye navn */ copy($http_post_files['userfile']['tmp_name'],"$upload_sti$nytnavn"); /* Indsætter data i databasen. billed er navnet på tabellen i databasen. Den første parantes fortæller hvilke kolonner der skal indsættes i. Den anden parantes giver værdierne. overskrift, tekst, billednavn og navn kommer fra vores formular. billed er det nye navn billedet har fået, og som skal bruges til at hente billedet igen. Filtype er taget med for at man kan få et overblik over hvilke filtyper der bliver brugt. Du kan selvfølgeligt ændre i dette, hvis du ønsker andre felter i din formular, men vær opmærksom, der skal ikke ret meget til for at lave ged i det. */ $query = "INSERT INTO billed(overskrift, tekst, billed, billednavn, navn, filtype) VALUES ('".$_POST['overskrift']."','".$_POST['tekst']."','$nytnavn','$uploadname','".$_POST['navn']."','$ext')"; mysql_query($query); /* går til en ny side (formentligt der hvor man kan se det nye indlæg) */ header("location: siden_der_skal_returneres_til.php"); mysql_close($db);

} /* hvis ikke filen er et billede, eller anden godkendt fil */ echo "din fil er ikke en godkendt fil" } /* Hvis der ikke uploades nogen fil */ /* Al filhåntering bliver sprunget over, og de andre data indsættes i databasen */ $query = "INSERT INTO billed(overskrift, tekst, navn) VALUES ('".$_POST['overskrift']."','".$_POST['tekst']."','".$_POST['navn']."')"; mysql_query($query); header("location: siden_der_skal_returneres_til.php");mysql_close($db); }?> Nu kommer siden hvorfra Databaseforbindelse, maxstørrelse og destination til filen konfigureres. Den skal hede config.php <?php /*disse oplysninger har du fået af din udbydder*/ $db_host = "server.dk"; // mysql Server $db_user = "brugernavn"; // mysql brugernavn $db_pass = "kode"; // mysql kode $db_name = "database"; // mysql Database /*disse to kan du efter behov*/ $upload_sti = "billeder/"; // Mappe navn på mappen billede skal uploades til $upload_maxsize = "102400"; // Størelse skrives i bytes 102400 = 1 Mb, & 204800 = 2 Mb osv.?> For at scriptet kan få lov til at oprette filer på serveren, skal du chmodde den mappe de skal ligge i til 777. Dette kan gøres fra langt de fleste ftp programmer ved at højreklikke på mappen, vælge indstillinger/propperties/chmod, og derefter indstille det til 777. i nogle programmer er der istedet 9 checkbokse, de skal alle afkrydses. Har du ikke et ordentligt ftp program vil jeg anbefale aceftp, som fås i en gratisversion, med en lille reklame. http://software.visicommedia.com/en/products/aceftp/ Desuden skal du jo huske at oprette en tabel i databasen. Dette gøres nemmest via phpmyadmin. Tabellen skal hedde billed, og kan se sådan ud: id (skal sættes til "int" med værdien 11, den skal være auto_increement og unik) overskrift (varcher 250), tekst (text), billed (varcher 100), billednavn (varcher 250), navn (varcher 250), filtype (varcher 10). Jeg er ikke den store databaseekspert, men denne virker da i hvert fald:) Når alle filer er oprettede, og rettede til de rigtige oplysninger skulle det gerne virke. Jeg vil foreslå at du starter med kun at ændre de oplysninger der er nødvendige for at få det til at virke, og når du så har fået det til at virke, arbejdere viddere med det skridt for skridt, da man ellers risikere at have brugt en times tid på at rette det, og så stå med et script der bare ikke vil virke.

Har du nogen kommentare eller rettelser, så er du meget velkommen til at skrive til mig på sorenbs@msn.com Og tilbage er der vel bare at sige: God arbejdslyst Kommentar af nicklasb d. 01. Sep 2004 1 Det er jo ikke en artikkel? Vil nærmere beskrive det som et script med lidt elementer forklaring til hvorvidt det kommer til at virke overhovedet! Men godt er det vel, hvis man ikke lige selv kan finde ud af at lave det, og blot ønsker et færdigt (men ukendt) produkt! :D Kommentar af fredie89 d. 04. Mar 2005 2 CREATE TABLE `billed` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT, `overskrift` VARCHAR( 250 ) NOT NULL, `tekst` TEXT NOT NULL, `billede` VARCHAR( 100 ) NOT NULL, `billedenavn` VARCHAR( 250 ) NOT NULL, `navn` VARCHAR( 250 ) NOT NULL, `filtype` VARCHAR( 10 ) NOT NULL, PRIMARY KEY ( `id` ) ); Har ikke fået den helt til at virke endnu.. Kommentar af qtax87 (nedlagt brugerprofil) d. 14. Oct 2005 3 Når du laver databaser, skal du få den optimeret så godt som muligt, fordi hvis du skal hente mig ud, vil det tage længere tid, uden grund. Når du definére varchar's længde f.eks. 250 så er der mulighed for at bruge 250 tegn, ja men den bruger alle 250 lige meget hvad, den viser det bare ikke. Kommentar af loui-lol d. 24. Sep 2004 4 Den er fin, nem at forstå. Kommentar af morteeart d. 05. Sep 2004 5 Hva, lamt artikel. Der bruges gamle variables som slet og der er slet ikke noget forklaring på brugen af GD, til resize osv. Læs Denne her artikel fra udvikleren (som ikke koster points) http://www.udvikleren.dk/article.php?aid=138&techid=6, istedet da den er meget mere grundig Kommentar af web-geek d. 01. Sep 2004 6 God artikel ;o) Kommentar af nizo d. 23. Oct 2005 7 Jeg synes ikke titlen virker ikke forklarende. Desuden (som sagt tidligere) er det mere bare et Script... Målgruppen vil næppe rette sig mod nybegyndere, da det bare er... kode. Man faar ikke indtryk af at det er nemt og brugervenligt. Jeg vil

umiddelbart mene at folk der er i stand til at forstaa koden i det, er selv i stand til at kode noget i den stil. Men bortset fra alt det er det et meget fint Script! Kommentar af heymann d. 19. May 2006 8