[php] Hoe Extentie verkrijgen ipv /tmp/fgdf4fSDFg

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • commeric
  • Registratie: November 2002
  • Laatst online: 14-08 22:32
Hallo,
ik heb in adduser.php dit staan

<form name="save" method="post" action="saveuser.php"="multipart/form-data">
<input type="file" name="n_bestand">
<input type="submit" name="n_Submit" value="Submit">

in saveuser.php staat oa dit
PHP:
1
2
3
4
5
6
7
8
<?
$extentie = substr($n_bestand, -3);  
    if (strtoupper($extentie) != "JPG") {
        echo strtoupper($extentie);
        echo "Its only possible to upload JPG files!";
        exit;
    }
?>

Maar hij geeft altijd aan dat het geen JPG file is.
Als ik $extentie echo krijg ik FGX 5fS enz.
Na dat ik $n_bestand heb geeched komt er dit uit
/tmp/php0dzKDl
of dit
/tmp/php56dfB4
enz.

jullie snappen dus dat hij het filepath weergeeeft die de file heeft als hij is geuplad load,
Hoe check ik dan dat het een JPG is?
Zou het bijv ook kunnen met gd lib. IsJPEG ofzo?

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

<form name="save" method="post" action="saveuser.php"="multipart/form-data">
Is sowieso al niet geldig.
--> enctype="multipart/form-data" <--

[ Voor 32% gewijzigd door gorgi_19 op 01-03-2003 16:56 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • Treenaks
  • Registratie: April 2001
  • Laatst online: 07:45
Extensie kan je nooit iets mee doen :)
je kan 'm proberen te openen als JPG (is een GD library voor). Als dat mislukt is het geen .jpg file (of iig geen ondersteunde jpg file).

Je kan ook de tool 'file' erop los laten.

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

$_FILES['n_bestand']['name'] geeft je de echte naam van het bestand
$_FILES['n_bestand']['type'] geeft de mime type van het bestand (geeft dus aan wat het daadwerkelijk is bijvoorbeeld 'image/jpeg' - werkt voor de meestvoorkomende bestandstypen)

Kijk anders ook eens hier :)

[ Voor 12% gewijzigd door crisp op 01-03-2003 17:00 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Helox-in-a-box
  • Registratie: Augustus 2000
  • Laatst online: 07:37
move_uploadedfile($_FILES["n_bestand"]["tmp_name"], $_FILES["n_bestand"]["name"]);

zo verplaats je em van de TMP file naar de egte filename die de file heeft, zou eiglijk slimmer zijn om em gewoon zelf een naam te geven imho met bv een waarde uit een db.

[edit]
crisp was me voor :P

[ Voor 16% gewijzigd door Helox-in-a-box op 01-03-2003 17:01 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Je kijkt even naar de mime type van het geüploade bestand:
$_FILES [ 'inputname' ] [ 'type' ]

Dit zou gelijk moeten zijn aan bijvoorbeeld 'image/jpeg'.

Het is ook natuurlijk niet voor niets dat die bestanden hernoemd worden. Als iemand zo onverstandig is om files in een directory te laten uploaden die via HTTP bereikbaar was, dan kon diegene waarschijnlijk zonder veel moeite zelf bijvoorbeeld PHP bestanden uploaden.

Je moet sowieso altijd de bestandsnaam en eigenlijk alles wat je van de client krijgt controleren, het is denk ik zo gedaan om developers tegen zichzelf te beschermen.

Acties:
  • 0 Henk 'm!

  • commeric
  • Registratie: November 2002
  • Laatst online: 14-08 22:32
Super Bedankt allemaal.


Nou heb ik nog een vraagje.
Is het verstandig om op exctentie te controleren of op mimetype?
En is het mogelijk als het directory gechmod is op 777 (wat iig 666 moet zijn als er nuiet uit gexecute mag worden, maar het is windows.:() dat dan JPG files kunnen worden "uitgevoerd"?

ik heb het nu zo gedaan en het werkt perfect!
PHP:
1
2
3
4
5
6
7
$bestandnaam =  $_FILES['n_bestand']['name']; 
$extentie = substr($bestandnaam, -3);  
    if (strtoupper($extentie) != "JPG") {
        echo "Its only possible to upload JPG files!";
        echo "<BR> Your type is $extentie";
        exit;
    }

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

commeric2 schreef op 01 March 2003 @ 17:14:
Super Bedankt allemaal.


Nou heb ik nog een vraagje.
Is het verstandig om op exctentie te controleren of op mimetype?
En is het mogelijk als het directory gechmod is op 777 (wat iig 666 moet zijn als er nuiet uit gexecute mag worden, maar het is windows.:() dat dan JPG files kunnen worden "uitgevoerd"?

ik heb het nu zo gedaan en het werkt perfect!
[...]
Op mimetype checken is altijd veiliger; ik kan nl wel een .exe renamen naar .jpg en 'm dan uploaden in jouw script. De mimetype wordt bepaald aan de inhoud van het bestand, dus als daaruit bepaald kan worden dat het een plaatje is, dan is het ook echt een plaatje.

En hoe wou je een jpeg gaan uitvoeren :?

[ Voor 24% gewijzigd door crisp op 01-03-2003 17:17 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • commeric
  • Registratie: November 2002
  • Laatst online: 14-08 22:32
Ik heb gelezen dat je heb dan op 666 moet zetten omdat JPEG ook uitvoerbaar zouden zijn. MAar ik vraag me af hoe je dat dan doet, als het al kan
Pagina: 1