TestMax.dk Paster
  • Forside
  • Print
  • Bookmark
  • Kontakt
  • SiteMap


infobox infobox
 

Guide: Upload Script (upload+visning)

05-07-2008 22:32:59
 
 
Muligheder (Anmeld)
Skrevet af Shavi
Kliks 844
Kategori PHP Guide's
Hej hej folkens, dette er så min første guide, så håber jeg kan holde det overskueligt og i kan følge med =)
Vi skal kigge på et Upload script som vi bygger op fra bunden. Først går vi igennem hvordan man uploader en fil og bagefter hvordan man laver en liste over alle filer og kan hente dem ned igen.
Såååå Lets get in to it! :)

Fil 1: Upload.php
I upload.php starter vi med at lave en html formular til at finde den fil vi vil upload.


// Her starter vi vores form
<form action="upload.php" method="post" enctype="multipart/form-data">

// Så laver vi en input type file hvor vi kan browwse vores harddisk efter filen vi vil upload.
Vælg den fil du vil uploade. <input name="minfil" type="file">

// Og her tilføjer vi så en knap til vores formular som skal udføre handlingen.
<input type="submit" value="Upload fil">

// Her lukker vi vores form
</form>



Nu går vi så videre til sql delen hvor vi tjekker om der er valgt en fil og uploader den.


// Her starter vi med vores php del.
<?php

// Her tjekker vi om der er valgt en fil i vores formular.
if ($_FILES['minfil'])
{

// Her vælger vi så hvilken mappe filen skal ende i, i dette tilfælde "uploaded_files"
$destination = "uploaded_files/" . $_FILES['minfil']['name'];

// Her forsøger vi så at flytte filen fra dens midlertidige opholdssted til den mappe vi har valgt.
if (move_uploaded_file($_FILES['minfil']['tmp_name'], $destination))
{

// Hvis det så lykkes at flytte filen udskriver vi det her.
echo "Filen" . $_FILES['minfil']['name'] . " er blevet uploadet";
}
else
{

// Hvis det mislykkes at flytte filen så skriver vi det her.
echo "Filen blev ikke uploaded, prøv igen senere.";
}
}

// Her slutter vi med vores php del.
?>



Lad os så lige se hvordan vores upload.php ser ud nu:



// PHP delen

<?php

// Her tjekker vi om der er valgt en fil i vores formular.
if ($_FILES['minfil'])
{

// Her vælger vi så hvilken mappe filen skal ende i, i dette tilfælde "uploaded_files"
$destination = "uploaded_files/" . $_FILES['minfil']['name'];

// Her forsøger vi så at flytte filen fra dens midlertidige opholdssted til den mappe vi har valgt.
if (move_uploaded_file($_FILES['minfil']['tmp_name'], $destination))
{

// Hvis det så lykkes at flytte filen udskriver vi det her.
echo "Filen" . $_FILES['minfil']['name'] . " er blevet uploadet";
}
else
{

// Hvis det mislykkes at flytte filen så skriver vi det her.
echo "Filen blev ikke uploaded, prøv igen senere.";
}
}

// Her slutter vi med vores php del.
?>

// HTML delen

// Her starter vi vores form
<form action="upload.php" method="post" enctype="multipart/form-data">

// Så laver vi en input type file hvor vi kan browwse vores harddisk efter filen vi vil upload.
Vælg den fil du vil uploade. <input name="minfil" type="file">

// Og her tilføjer vi så en knap til vores formular som skal udføre handlingen.
<input type="submit" value="Upload fil">

// Her lukker vi vores form
</form>



Fil 2: upload_show.php



// Vi starter php delen.
<?

// Her vælger vi vores mappe hvor vi har placeret de uploadede filer. Stadig "uploaded_files"
$dirname = "uploaded_files/";

// Her laver vi så en $var hvor vi åbner vores mappe.
$dirhandle = opendir($dirname);

// Her starter vi så vores mappe og looper igennem alle filerne/Mapperne i den.
while($file = readdir($dirhandle))
{

// Her fjerner vi så alle "." og ".."
if ($file != "." && $file != "..")
{

// Her tjekker vi så om det er en mappe eller en fil.
if (is_file($dirname.$file))
{

// Her udskriver vi navnet hvis det er en fil.
echo "fil: " . $file . "<br>";
}
else
{

// Og her udskriver vi navnet hvis det er en mappe.
echo "mappe: " . $file . "<br>";
}
}
}
?>



Dette er så som i kan se en simpel måde at udskrive filerne i en mappe på. Så lad os gå lidt videre med det og lave en tabel med et link til at hente filenerne, samtidig så gør vi så den ikke printer mapperne.



// Vi starter php delen.
<?

// Her vælger vi vores mappe hvor vi har placeret de uploadede filer. Stadig "uploaded_files"
$dirname = "uploaded_files/";

// Her laver vi så en $var hvor vi åbner vores mappe.
$dirhandle = opendir($dirname);

// Her lukker vi midlertidigt vores php for at starte vores table til vores liste.
?>

// Her starter vi så vores table.
<table width="250" border="1">
<tr>
<td width="200">Fil navn:</td><td width="50">Link</td>
</tr>

// Og så åbner vi for php igen
<?

// Her starter vi så vores mappe og looper igennem alle filerne i den.
while($file = readdir($dirhandle))
{

// Her fjerner vi så alle "." og ".."
if ($file != "." && $file != "..")
{

// Her tjekker vi så om det er en mappe eller en fil.
if (is_file($dirname.$file))
{

// Her udskriver vi så navnet og linket til filen med <tr> og <td>
echo "<tr><td> " . $file . "</td><td><a href=\"/uploaded_files/$file\"/>Hent</a></td></tr>";
}
}
}
?>

// Her lukker vi så vores table.
</table>



Lille forklaring. Vi starter vores table før loopet og så når vi udskriver et fil navn laver vi en række <tr> og de 2 felter <td> Hvor vi så udskriver vores information i så lukker vi vores felter og vores række og så når den looper igennem næste gang vil den lave en ny række. Sådan laver vi så en liste.
Så der måske nogen af jer der undre jer lidt over vores link så lad os lige kigge på det igen.



echo "<tr><td> " . $file . "</td><td><a href=\"/uploaded_files/$file\"/>Hent</a></td></tr>";



Vi bruger som i kan se html til at lave vores link men da vi i html er nød til at bruge " " " som vil forstyrre vores php command "echo" derfor så indhegner vi det "\"/" så er det bliver printet men det ikke forstyrre vores php.


Håber i fik noget ud af at kigge på min guide, som sagt er det min første og derfor er i også meget velkommen til at komme med ros eller kritik.

I kan se en live demo her: http://www.shavi.dk/upload.php
Hvor jeg bare har tilføjet nogle links og udarbejdet listen mere.
[url] http://www.shavi.dk [/url]
 
infobox infobox


infobox infobox
 
#1Drax(Anmeld) 05-07-2008 23:23:43
 
 
shavi > rigtigt fed guide!

Godt kommenteret og meget flot arbejde.

Håber en masse kan bruge guiden, men en lille ting, ret lige linket nederst så der står http:// foran, ellers linker den forkert :)
Administrator - TestMax.dk Stifter/Udvikler

Drax's signatur billede
 
infobox infobox

infobox infobox
 
#2GiMo(Anmeld) 05-07-2008 23:25:39
 
 
#0 ~ #1: Ja, for Drax er lidt gammeldags - han vil have http:// foran...

@ Topic
Ganske udemærket guide. Dog kunne den en del steder være beskrevet bedre. Der er en hel del funktioner du benytter dig af, som en helt nybegynder blot ville spærre øjnene op ad.

Flere forklaringer - ellers rigtig godt.
www.simon.simfre.dk
 
infobox infobox

infobox infobox
 
#3Shavi(Anmeld) 06-07-2008 00:01:50
 
 
#1 Takker drax :) Og har rettet mit link med http:// =)

-

#2 Takker, jep der er en del funktioner jeg benytter mig af som har mange muligheder men nu er det en hurtigt gennemgang og guide til selve scriptet. Kunne jo selfølgelig godt bruge 3 timer mere på at forklare hvad en $var kan bruges til eller alle mulighederne i if/else :) Men har jeg så valgt ikke at gøre.

#Til alle - Hvis i har spørgsmål eller andet er i selfølgelig velkommen til at henvende kontakt til mig, enten via tråden her, via priv besked eller min hjemmeside´s kontakt formular http://www.shavi.dk
[url] http://www.shavi.dk [/url]
 
infobox infobox

infobox infobox
 
#4jordz(Anmeld) 06-07-2008 11:33:16
 
 
Fin guide.

Dog syntes jeg at det ligner noget jeg har set på http://www.phpartikler.dk but wtf :P
Sprog: PHP - HTML - CSS - Javascript - MSL
Hjemeside: [url]http://www.Webcomfort.dk[/url]
 
infobox infobox

infobox infobox
 
#5Shavi(Anmeld) 06-07-2008 15:40:13
 
 
#4 Kan godt passe der er en vis lighed med phpartikler fordi det var der jeg lærte det i sins tid :)
[url] http://www.shavi.dk [/url]
 
infobox infobox

infobox infobox
 
#6NoxiaZ(Anmeld) 06-07-2008 20:33:45
 
 
#4 -> http://www.phpartikler.dk.....filsystem.php#upload <-- :)

#0 -> eller fint guide, men ligner bare lidt for meget phpartikler.dk - Men jaja ^^ Din guide er dog 10 gange så godt forklaret ;) så det skal du have :D
Tralalala?
 
infobox infobox

infobox infobox
 
#7NoxiaZ(Anmeld) 06-07-2008 20:48:56
 
 
Der er dog en lille ting du burde ændre og overveje når du laver guides :) Det er fint ud skriver hvordan filerne ser ud efter du har forklaret det hele.. Men når du viser hvordan filer ser ud skal forklaringerne ikke længere være der :) det giver forstyrrelser og svært lige at gennemskue samligningen af sin egen kode og den du har skrevet :) - Du må gå ud fra at folk der læser en guide selv skriver det ned i en tekst fil, altså ikke laver noget copy paste. (Den måde jeg selv gør det på når jeg endelig kaste mig ud i en guide) - Der er heller ikke nogen grund til at kommenter den samme kode 2 gange :) Håber du tænker lidt over det til næste gang, og evt. ændre det i denne også :D Men ja hver sin smag.
Tralalala?
 
infobox infobox

infobox infobox
 
#8Shavi(Anmeld) 06-07-2008 21:18:53
 
 
#6 Takker.

#7 Well godt tænkt men alligevel.. .:)
[url] http://www.shavi.dk [/url]
 
infobox infobox

infobox infobox
 
#9NoxiaZ(Anmeld) 06-07-2008 22:39:29
 
 
#8 -> "men alligevel" ? :D
Tralalala?
 
infobox infobox

infobox infobox
 
#10jordz(Anmeld) 07-07-2008 13:25:26
 
 
#7 > jeg syntes det er okay at kommentarene er der. for han siger jo at han sætter det hele sammen nu og så viser hvordan filen er der.

De fleste PHP nap's de ville også KUN have bedre overblik i deres filer hvis der var comments i filen.
Sprog: PHP - HTML - CSS - Javascript - MSL
Hjemeside: [url]http://www.Webcomfort.dk[/url]
 
infobox infobox

infobox infobox
 
#11Znow(Anmeld) 07-07-2008 17:54:59
 
 
Flot guide, men please, brug spacing ;) Blev ør i hovedet da jeg skulle læse det :D
Der er styr på lortet!
Eller var det lort på styret?...
 
infobox infobox

infobox infobox
 
#12Nizlax(Anmeld) 07-07-2008 20:43:37
 
 
fedt !
PlusFM ! :D
<a href="http://aemme.alwaysdata.net/"><img src="http://aemme.alwaysdata.net/EU-Vashj-Nizlax.png">< ;/a>

Nizlax's signatur billede
 
infobox infobox

infobox infobox
 
#13Shavi(Anmeld) 07-07-2008 23:15:53
 
 
#8 Ja at det giver mere overblik ligesom jordz skriv.

#11 Takker, vil jeg huske :)

#12 Godt at høre :)
[url] http://www.shavi.dk [/url]
 
infobox infobox

infobox infobox
 
#14eRago(Anmeld) 10-07-2008 19:45:53
 
 
tager det lige igen ;D

* fejl er rettet
 
infobox infobox

Påmindelse ved nyt svar

Ved at tilmelde dig automatisk påmindelse, modtager du en email så snart denne tråd bliver besvaret, dog sender vi kun en mail til dig, også selvom der er kommet flere svar, simpelthen for at spare dig for spam i din indbakke.


infobox infobox
  Svar på tråden  
   
 
 
infobox infobox

infobox infobox
  Læs dette før du sender dit indlæg!  
 
Ved tryk på send knappen accepterer du vores regelsæt som kan læses her
Praktiske informationer
Type Eksempel Resultat
Fed [b]din tekst[/b] din tekst
Kursiv [k]din tekst[/k] din tekst
Understreg [u]din tekst[/u] din tekst
Kode felt [code]din tekst[/code]
din tekst
infobox infobox