Búa til upload server

Skjámynd

Höfundur
mikkidan97
spjallið.is
Póstar: 406
Skráði sig: Mið 29. Feb 2012 15:48
Reputation: 7
Staðsetning: Keflavík
Hafðu samband:
Staða: Ótengdur

Búa til upload server

Pósturaf mikkidan97 » Mið 22. Maí 2013 11:51

Ég er með tilbúinn server með smf, php, mysql, apache2 og keyrir á ubuntu server 12.04 og mig langar að búa til service fyrir notendur mína (bara með php eða html) þar sem þeir geta uploadað skrám eins og bara avatars, mp3 skrár eða bara eitthvað þannig með max size 25 MB per skrá. Ég er kominn með auðkenningar síðu sem notar MySql database fyrir accounta og ég skrái þá bara nafn og password og notandinn getur loggað sig inn.

Var búinn að prufa þetta en það virkaði ekki eins og ég vildi hafa það

Öll hjálp vel þegin :happy


Bananas

Skjámynd

Stutturdreki
Of mikill frítími
Póstar: 1701
Skráði sig: Þri 27. Apr 2004 14:03
Reputation: 37
Staða: Ótengdur

Re: Búa til upload server

Pósturaf Stutturdreki » Mið 22. Maí 2013 11:56

Væri ekki bara einfaldast að setja upp FTP server?



Skjámynd

Höfundur
mikkidan97
spjallið.is
Póstar: 406
Skráði sig: Mið 29. Feb 2012 15:48
Reputation: 7
Staðsetning: Keflavík
Hafðu samband:
Staða: Ótengdur

Re: Búa til upload server

Pósturaf mikkidan97 » Mið 22. Maí 2013 12:17

Það eru ekki allir sem kunna að nota ftp (því miður)
og ég var búinn að reyna að nota FTP, en það einfaldlega gekk ekki


Bananas

Skjámynd

rango
FanBoy
Póstar: 785
Skráði sig: Lau 14. Júl 2012 22:36
Reputation: 3
Staðsetning: 404 - Location Not found.
Staða: Ótengdur

Re: Búa til upload server

Pósturaf rango » Mið 22. Maí 2013 12:31

Bara áður enn við gerum einhvað, Hvernig ertu að setja Passwd í Mysql?
Nr. 1 2 og 3, Hashaðu lykilorðin.

Ekki nota MD5 eða SHA1, Notaðu frekar SHA2, t.d.

Kóði: Velja allt


hash
('sha512', $pass);


Saltaðu svo lykilorðin og þá getum við talað.

:happy



Skjámynd

Höfundur
mikkidan97
spjallið.is
Póstar: 406
Skráði sig: Mið 29. Feb 2012 15:48
Reputation: 7
Staðsetning: Keflavík
Hafðu samband:
Staða: Ótengdur

Re: Búa til upload server

Pósturaf mikkidan97 » Mið 22. Maí 2013 12:43

rango skrifaði:Bara áður enn við gerum einhvað, Hvernig ertu að setja Passwd í Mysql?
Nr. 1 2 og 3, Hashaðu lykilorðin.

Ekki nota MD5 eða SHA1, Notaðu frekar SHA2, t.d.

Kóði: Velja allt


hash
('sha512', $pass);
 


Saltaðu svo lykilorðin og þá getum við talað.

:happy

Þetta er allt encryptað í drasl, skil ekki alveg sjálfur hvernig, en mér sýnist það vera annaðhvort SHA1 eða 2

Það er ekki auðkenningin sem ég hef áhyggjur af (atm), heldur hvernig notendurnir geta uploadað skránum þeirra ;)


Bananas

Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Búa til upload server

Pósturaf dori » Mið 22. Maí 2013 12:57

rango skrifaði:Bara áður enn við gerum einhvað, Hvernig ertu að setja Passwd í Mysql?
Nr. 1 2 og 3, Hashaðu lykilorðin.

Ekki nota MD5 eða SHA1, Notaðu frekar SHA2, t.d.

Kóði: Velja allt


hash
('sha512', $pass);


Saltaðu svo lykilorðin og þá getum við talað.

:happy

Stráksi... Hérna notum við bcrypt eða pbkdf2. SHA er crypto hash (hannað til að vera hraðvirkt) en bcrypt og pbkdf2 eru password hash (hönnuð til að taka tíma). Samt hárrétt að salt+hash er nauðsynlegt.

@OP: hvað er það sem virkaði ekki eins og þú vildir hafa það við þetta w3schools dót?



Skjámynd

Höfundur
mikkidan97
spjallið.is
Póstar: 406
Skráði sig: Mið 29. Feb 2012 15:48
Reputation: 7
Staðsetning: Keflavík
Hafðu samband:
Staða: Ótengdur

Re: Búa til upload server

Pósturaf mikkidan97 » Mið 22. Maí 2013 13:08

Það einfaldlega vildi ekki leyfa mér að uploada skrám...

Ef þú vilt prufa sjálfur http://codw.co.vu/MINE/test

Ég bjó til temporary user: vaktin og pass: vaktin123


Bananas

Skjámynd

rango
FanBoy
Póstar: 785
Skráði sig: Lau 14. Júl 2012 22:36
Reputation: 3
Staðsetning: 404 - Location Not found.
Staða: Ótengdur

Re: Búa til upload server

Pósturaf rango » Mið 22. Maí 2013 13:14

dori skrifaði:
rango skrifaði:Bara áður enn við gerum einhvað, Hvernig ertu að setja Passwd í Mysql?
Nr. 1 2 og 3, Hashaðu lykilorðin.

Ekki nota MD5 eða SHA1, Notaðu frekar SHA2, t.d.

Kóði: Velja allt


hash
('sha512', $pass);


Saltaðu svo lykilorðin og þá getum við talað.

:happy

Stráksi... Hérna notum við bcrypt eða pbkdf2. SHA er crypto hash (hannað til að vera hraðvirkt) en bcrypt og pbkdf2 eru password hash (hönnuð til að taka tíma). Samt hárrétt að salt+hash er nauðsynlegt.


Veit vel hvað SHA er og í hvað það var hannað, Enn við getum verið sammála um að SHA2 sé öruggara enn SHA1?
Þetta er alveg hárrétt hjá þér með blowfish, Markmiðið með SHA er ekki strong öryggi, Ég nota bcrypt hjá mér.
Ef einhver vill brjóta SHA eða MD5 er þá er það hægt, Enn þarna ertu bara búinn að reisa rafmagnsgirðingu.

Ég var líka að taka tillit til hans mikka, Algjör óþarfi að segja honum að ekkert nema það besta dugi. Eða mér finst það þó svo að það eigi við í öryggi.
Þegar ég byrjaði að læra þetta þá varð ósaltað MD5 fyrir valinu, Shit happens :face

Edit, Pastebin af upload_file.php takk.



Skjámynd

Höfundur
mikkidan97
spjallið.is
Póstar: 406
Skráði sig: Mið 29. Feb 2012 15:48
Reputation: 7
Staðsetning: Keflavík
Hafðu samband:
Staða: Ótengdur

Re: Búa til upload server

Pósturaf mikkidan97 » Mið 22. Maí 2013 13:17

Pastebin? o.O

Kóði: Velja allt

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png", "mp3");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "audio/mp3"))
&& ($_FILES["file"]["size"] < 100000000)
&& in_array($extension, $allowedExts))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>


Bananas

Skjámynd

Stutturdreki
Of mikill frítími
Póstar: 1701
Skráði sig: Þri 27. Apr 2004 14:03
Reputation: 37
Staða: Ótengdur

Re: Búa til upload server

Pósturaf Stutturdreki » Mið 22. Maí 2013 13:24

Kóði: Velja allt

Upload: 28a8ab85ff6a1436d03e9d198c6f202923f1b674_full.jpg
Type: image/jpeg
Size: 3.734375 kB
Temp file: /tmp/phpxtyGlI
Stored in: upload/28a8ab85ff6a1436d03e9d198c6f202923f1b674_full.jpg


Kom engin villa?



Skjámynd

Höfundur
mikkidan97
spjallið.is
Póstar: 406
Skráði sig: Mið 29. Feb 2012 15:48
Reputation: 7
Staðsetning: Keflavík
Hafðu samband:
Staða: Ótengdur

Re: Búa til upload server

Pósturaf mikkidan97 » Mið 22. Maí 2013 13:26

Hvar ætti að koma villa?


Bananas

Skjámynd

rango
FanBoy
Póstar: 785
Skráði sig: Lau 14. Júl 2012 22:36
Reputation: 3
Staðsetning: 404 - Location Not found.
Staða: Ótengdur

Re: Búa til upload server

Pósturaf rango » Mið 22. Maí 2013 13:30

mikkidan97 skrifaði:Pastebin? o.O

Kóði: Velja allt

<?php
$allowedExts = array("gif", "jpeg", "jpg", "png", "mp3");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "audio/mp3"))
&& ($_FILES["file"]["size"] < 100000000)
&& in_array($extension, $allowedExts))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>


Ja eða þú veist orðatiltak, Getur allt eins renamað í .php.txt

villtu setja fyrir mig

Kóði: Velja allt

 var_dump($_FILES["file"]); 


rétt fyrir ofan

Kóði: Velja allt

if ((($_FILES["file"]["type"] == "image/gif")
||
 ($_FILES["file"]["type"] == "image/jpeg")
||
 ($_FILES["file"]["type"] == "image/jpg")
||
 ($_FILES["file"]["type"] == "image/pjpeg")
||
 ($_FILES["file"]["type"] == "image/x-png")
||
 ($_FILES["file"]["type"] == "image/png")
||
 ($_FILES["file"]["type"] == "audio/mp3"))
&&
 ($_FILES["file"]["size"] < 100000000)
&&
 in_array($extension, $allowedExts))


ég fæ

Kóði: Velja allt

array(1) { ["file"]=> array(5) { ["name"]=> string(10) "Status.png" ["type"]=> string(9) "image/png" ["tmp_name"]=> string(24) "G:\xampp\tmp\php7BC1.tmp" ["error"]=> int(0) ["size"]=> int(251893) } } Upload: Status.png


Þessi if function er að feila og því kemur Invalid file.



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Búa til upload server

Pósturaf dori » Mið 22. Maí 2013 13:33

Má ég giska á permission villur?

Also, það er góður siður að geyma skjöl sem eru send inn ekki til hliðar við scipturnar þínar (þú vilt ekki leyfa einhverjum að uploada skrá.php, keyra hana og ná að taka yfir vefþjóninn þinn). Það er líka sniðugt að búa til nýtt nafn fyrir skjöl sem eru send inn (md5 summa af skjalinu + .ext virkar ágætlega í það) og að hafa fall sem býr til slóðina á skránna og setja í breytu (t.d. get_filename("einhver-mynd.jpg") -> "/afvikinn/staður/b861d3166e5b360b60e2325d5fc971a8.jpg") og nota þá breytu alls staðar í stað þess að vera með "upload/" . $name á mörgum stöðum (býr til hættu á villum).



Skjámynd

Höfundur
mikkidan97
spjallið.is
Póstar: 406
Skráði sig: Mið 29. Feb 2012 15:48
Reputation: 7
Staðsetning: Keflavík
Hafðu samband:
Staða: Ótengdur

Re: Búa til upload server

Pósturaf mikkidan97 » Mið 22. Maí 2013 13:36

dori skrifaði:Má ég giska á permission villur?

Also, það er góður siður að geyma skjöl sem eru send inn ekki til hliðar við scipturnar þínar (þú vilt ekki leyfa einhverjum að uploada skrá.php, keyra hana og ná að taka yfir vefþjóninn þinn). Það er líka sniðugt að búa til nýtt nafn fyrir skjöl sem eru send inn (md5 summa af skjalinu + .ext virkar ágætlega í það) og að hafa fall sem býr til slóðina á skránna og setja í breytu (t.d. get_filename("einhver-mynd.jpg") -> "/afvikinn/staður/b861d3166e5b360b60e2325d5fc971a8.jpg") og nota þá breytu alls staðar í stað þess að vera með "upload/" . $name á mörgum stöðum (býr til hættu á villum).

Á íslensku takk


Bananas

Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Búa til upload server

Pósturaf dori » Mið 22. Maí 2013 13:39

Eitthvað svona (ef þú ert á linux vél)

cd /www/mikkidan/MINE
chown www-data:www-data uploads
chmod 755 uploads

Augljóslega aðlaga slóð/username/groupname að því sem þú hefur á þínu kerfi.



Skjámynd

rango
FanBoy
Póstar: 785
Skráði sig: Lau 14. Júl 2012 22:36
Reputation: 3
Staðsetning: 404 - Location Not found.
Staða: Ótengdur

Re: Búa til upload server

Pósturaf rango » Mið 22. Maí 2013 13:42

dori skrifaði:Má ég giska á permission villur?

Also, það er góður siður að geyma skjöl sem eru send inn ekki til hliðar við scipturnar þínar (þú vilt ekki leyfa einhverjum að uploada skrá.php, keyra hana og ná að taka yfir vefþjóninn þinn). Það er líka sniðugt að búa til nýtt nafn fyrir skjöl sem eru send inn (md5 summa af skjalinu + .ext virkar ágætlega í það) og að hafa fall sem býr til slóðina á skránna og setja í breytu (t.d. get_filename("einhver-mynd.jpg") -> "/afvikinn/staður/b861d3166e5b360b60e2325d5fc971a8.jpg") og nota þá breytu alls staðar í stað þess að vera með "upload/" . $name á mörgum stöðum (býr til hættu á villum).


Ef þetta væri permission villi væri það þá ekki einhvað tengt move_uploaded_file()?

Kóði: Velja allt


Superlongif
(){
   Moves and shit
  
}
else
  {
  echo "Invalid file";
  }
 


Mig grunar $extension ef að $_FILES er ekki empty.

Og ég er 100% sammála þér með Md5, Og t.d. hafa upload í './'
meðan htdocs er í './htdocs/'



mikkidan97 skrifaði:Á íslensku takk

Keyrðu það sem ég sagði þér að keyra takk, Þetta er annars íslenska.
Google translate sannar munin ;)

May I guess Permission errors?

Also, it is good practice to store documents that are not submitted to the side of scipts (you do not want to allow someone to upload skrá.php, run, and manage to take over your server). It's also a good idea to create a new name for the documents that are filed (md5 sum of the file +. Ext works pretty well in it) and have a function that creates a path to the file and set the variable (eg get_filename ("some-image . jpg ") ->" / afvikinn/staður/b861d3166e5b360b60e2325d5fc971a8.jpg ") and use that variable everywhere instead of being a" upload / ". $ name in many places (creates a risk of errors).



Skjámynd

Stutturdreki
Of mikill frítími
Póstar: 1701
Skráði sig: Þri 27. Apr 2004 14:03
Reputation: 37
Staða: Ótengdur

Re: Búa til upload server

Pósturaf Stutturdreki » Mið 22. Maí 2013 13:45

mikkidan97 skrifaði:Hvar ætti að koma villa?

Ef það tókst ekki að uploada skránni hefði maður búist við villu. Miðað við skilaboðin sem ég fékk og php skriptið þá tókst þetta fullkomnlega.



Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Búa til upload server

Pósturaf dori » Mið 22. Maí 2013 13:48

Ég var að giska á að þetta væri tengt move_uploaded_file. Ég hef ekki hugmynd um hvernig sú aðgerð hegðar sér en ég man eftir skrýtnum og leiðinlegum vandamálum með PHP og upload og illa stillt permissions.



Skjámynd

Stutturdreki
Of mikill frítími
Póstar: 1701
Skráði sig: Þri 27. Apr 2004 14:03
Reputation: 37
Staða: Ótengdur

Re: Búa til upload server

Pósturaf Stutturdreki » Mið 22. Maí 2013 13:55

move_uploaded_file() skilar bool en það er ekki notað í þessu php scripti til að athuga hvort sú aðgerð tókst yfir höfuð (http://php.net/manual/en/function.move-uploaded-file.php).

Myndi byrja á að setja eitthvað eins og:

Kóði: Velja allt

if(move_uploaded_file($_FILES["file"]["tmp_name"],"upload/" . $_FILES["file"]["name"])) {
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
} else {
      echo "access denied";
}



Skjámynd

Höfundur
mikkidan97
spjallið.is
Póstar: 406
Skráði sig: Mið 29. Feb 2012 15:48
Reputation: 7
Staðsetning: Keflavík
Hafðu samband:
Staða: Ótengdur

Re: Búa til upload server

Pósturaf mikkidan97 » Mið 22. Maí 2013 14:13

rango skrifaði:
villtu setja fyrir mig

Kóði: Velja allt

 var_dump($_FILES["file"]); 


rétt fyrir ofan

Kóði: Velja allt

if ((($_FILES["file"]["type"] == "image/gif")
||
 ($_FILES["file"]["type"] == "image/jpeg")
||
 ($_FILES["file"]["type"] == "image/jpg")
||
 ($_FILES["file"]["type"] == "image/pjpeg")
||
 ($_FILES["file"]["type"] == "image/x-png")
||
 ($_FILES["file"]["type"] == "image/png")
||
 ($_FILES["file"]["type"] == "audio/mp3"))
&&
 ($_FILES["file"]["size"] < 100000000)
&&
 in_array($extension, $allowedExts))

[/quote]

Gerði það og fékk:

Kóði: Velja allt

array(5) { ["name"]=> string(12) "Capture1.PNG" ["type"]=> string(9) "image/png" ["tmp_name"]=> string(14) "/tmp/phpPChAoF" ["error"]=> int(0) ["size"]=> int(909) } Invalid file


Hvernig er hægt að fixa þetta?


Bananas

Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Búa til upload server

Pósturaf dori » Mið 22. Maí 2013 14:33

"PNG" er ekki það sama og "png" þarft að nota strtolower á $extension.



Skjámynd

Höfundur
mikkidan97
spjallið.is
Póstar: 406
Skráði sig: Mið 29. Feb 2012 15:48
Reputation: 7
Staðsetning: Keflavík
Hafðu samband:
Staða: Ótengdur

Re: Búa til upload server

Pósturaf mikkidan97 » Mið 22. Maí 2013 15:07

Er ekki hægt bara að búa til scriptu sem leyfir alla extensiona en blockar þá sem ég segi henni að blocka (php, html, etc..)?


Bananas

Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Búa til upload server

Pósturaf dori » Mið 22. Maí 2013 15:10

Það er hægt en ætti að vera augljóst að þú vilt ekki gera slíkt. Leyfðu bara takmarkað set og settu logg færslu ef þú bannar eitthvað. Þannig geturðu fylgst með loggunum og séð hvort það sé eitthvað sem þú ættir að leyfa.



Skjámynd

Höfundur
mikkidan97
spjallið.is
Póstar: 406
Skráði sig: Mið 29. Feb 2012 15:48
Reputation: 7
Staðsetning: Keflavík
Hafðu samband:
Staða: Ótengdur

Re: Búa til upload server

Pósturaf mikkidan97 » Mið 22. Maí 2013 15:15

dori skrifaði:Það er hægt en ætti að vera augljóst að þú vilt ekki gera slíkt. Leyfðu bara takmarkað set og settu logg færslu ef þú bannar eitthvað. Þannig geturðu fylgst með loggunum og séð hvort það sé eitthvað sem þú ættir að leyfa.

Ég kann eiginlega ekkert á php scripting...

Er ekki hægt að fá einhvern til að skrifa svona fyrir sig frítt?


Bananas

Skjámynd

dori
Besserwisser
Póstar: 3606
Skráði sig: Fim 12. Feb 2009 10:46
Reputation: 142
Staða: Ótengdur

Re: Búa til upload server

Pósturaf dori » Mið 22. Maí 2013 15:28

mikkidan97 skrifaði:
dori skrifaði:Það er hægt en ætti að vera augljóst að þú vilt ekki gera slíkt. Leyfðu bara takmarkað set og settu logg færslu ef þú bannar eitthvað. Þannig geturðu fylgst með loggunum og séð hvort það sé eitthvað sem þú ættir að leyfa.

Ég kann eiginlega ekkert á php scripting...

Er ekki hægt að fá einhvern til að skrifa svona fyrir sig frítt?

Yfirleitt er ekki hægt að fá neinn til að gera neitt fyrir sig frítt. Værir þú til í að koma og mála húsið mitt frítt?

Prufaðu þetta annars. Ætti að vera meira verbose og láta þig vita hvað það er sem gerist ekki.

Kóði: Velja allt


<?php
const UPLOAD_PATH 
= "upload/";

$allowedExts = array("gif", "jpeg", "jpg", "png", "mp3");
$allowedMimes = array("image/gif", "image/jpeg", "image/jpg", "image/pjpeg", "image/x-png", "image/png", "audio/mp3");
$maxSize = 100000000;

function get_extension($filename)
{
    return strtolower(end(explode(".", $filename)))
}

function get_file_path($file)
{
    return UPLOAD_PATH . md5_file($file["tmp_name"]);
}

$extension = get_extension($_FILES["file"]["name"]);
$mime = $_FILES["file"]["type"];
$size = $_FILES["file"]["size"];
if (!in_array($mime, $allowedMimes))
{
    echo "Restricted mime type: " . $mime;
}
 
elseif 
($size > $maxSize)
{
    echo "File too big (max size " . $maxSize . "): " . $size;
}
elseif (!in_array($extension, $allowedExts))
{
    echo "Restricted extension: " . $extension;
}
else
{
    if ($_FILES["file"]["error"] > 0)
    {
        echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
    }
    else
    
{
        $path = get_file_path($_FILES["file"]);
        
        echo 
"Upload: " . $_FILES["file"]["name"] . "<br>";
        echo "Type: " . $_FILES["file"]["type"] . "<br>";
        echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
        echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";
        echo "Dest path: " . $path;

        if (file_exists($path))
        {
            echo $path . " already exists. ";
        }
        else
        
{
            if(move_uploaded_file($_FILES["file"]["tmp_name"], $path))
            {
                echo "Stored " . $_FILES["file"]["name"] . " in: " . $path;
            }
            else
            
{
                echo "Couldn't upload " . $_FILES["file"]["name"];
            }
        }
    }
}
else
{
    echo "Invalid file";
}
?>


Btw. ég hef ekki keyrt þetta, kannski virkar þetta ekki einu sinni. Mörg ár síðan ég fiktaði eitthvað í php af viti.