I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Slettet bruger
28. juni 2005 - 00:45#1
Det kunne måske gøres med:
if (substr($fra, -4) == ".gif") { // Det er en gif } elseif (substr($fra, -4) == ".jpg) { // Det er en jpg } else { // Det er noget andet }
Jeg mener der findes en decideret funktion i PHPs lib til at bestemme en filtype, men jeg kan ikke lige finde den...! :(
Synes godt om
Slettet bruger
28. juni 2005 - 00:49#2
.. men hvis du benytter den øverste skal du nok også lige tage højde for ".GIF" og ".JPG" - det sker vidst nogle gange på Windowsmaskiner at de extensions bliver uppercase.
ern det getimagesize du tænker på, men ved ikke om jeg kan bruge den før filen er uploadet ??
Synes godt om
Slettet bruger
28. juni 2005 - 01:04#4
Den fortæller vidst kun om størrelsen på billedet. Jeg kan bare huske, at der er en funktion der giver filens tilbage i arrays. I princippet burde min ovenstående funktion virke lige så godt i det her tilfælde. Men nogle gange har filer jo længere (eller ingen) extension. Men dem vil else'en så fange her, sammen med alle andre filtyper.
Det kan du ikke. Det eneste du muligvis kan gøre, er at lave et javascript der undersøger indholdet af uploadfeltet, for at se hvad endelsen er... Hvordan ville du køre noget på serveren, som undersøger hvad brugeren har på sin harddisk?!
Øhh coderdk hvorfor kan jeg ikke dette if (preg_match("/\.jpe?g$/i",$files)){ } if (preg_match('/\.gif$/i',$files)) { }
$files stammer fra en form hvor brugeren kan vælge at uploade et billede, og når der er submittet kan jeg vil godt checke endelsen med ovenstående eller hvad ??
Okay når jeg talte om før upload mente jeg før billedet er placeret endeligt på serveren, og det er det jo ikke hvis typen ikke accepteres.. coderdk hvordan ville det iøvrigt se ud med getimagesize() ??
Pointen er at folk kan uploade en .php fil, en .exe eller andet, med en .jpg endelse ;) Med getimagesize er du sikker på at det er et billede, og af hvilken type, uanset endelsen - At checke endelsen er ekstra sikkerhed, hvis der uploades filer der kaldes direkte...
okay men jeg får en fejl når jeg prøver at uploade en php fil som jeg har omdøbt til : login.php.jpg
Warning: getimagesize(): Unable to access login.php.jpg in /customers/stien.dk/stien.dk/httpd.www/opdatering_tilmelding_final_thumbnail_laverthumbnails.php on line 19
Warning: getimagesize(login.php.jpg): failed to open stream: No such file or directory
Fejlen burde jo ikke komme i den linie : $info = getimagesize( $files); //linie 19
men først her : f ( $info[2] != 1 && $info[2] != 2 ) { echo "filen er ikke jpg eller gif"; }
Altså jeg har : $files = $_FILES['upfil']['name']; $info = getimagesize($files); if ( $info[2] != 1 && $info[2] != 2 ) { echo "filen er ikke jpg eller gif"; }
Dvs så skulle login.php.jpg ikke ligge i $_FILES['upfil'['name'] ???
Nu får jeg udskrevet "login.php.jpg" lige efter $files = $_FILES['upfil']['name']; Så ka problemet være at når man laver php filer om til jpg så kan getimagesize ikke klare det ??
Ja, dén skal bruge $_FILES['upfil']['name'] da det er brugeren eget navn, $_FILES['upfil']['tmp_name'] hedder som regel noget i stil med "/tmp/phpahf9921"
nu bruger jeg : if(false == ($str = getimagesize($_FILES["upfil"]["tmp_name"]))) { echo"Valgte fil til upload er ikke en billedfil!!!"; exit(); } ser det ikke meget godt ud ??
øh lige en ting mere, hvis man indsætter blanke tegn i upload feltet og uploader det så brokker den sig :Warning: getimagesize(): Read error! Hvordan undgår jeg denne melding ??
I det tilfælde vil empty( $_POST['upfil']['tmp_name'] ) være sand, og du vil så ikke nå ned til getimagesize - Hvis du rent faktisk uploader noget, som en .zip fil med en .jpg endelse, så vil getimagesize sikkert også brokke sig, så mit råd er at gøre som jeg skriver 29/06-2005 00:17:34 :)
if (!($str = @getimagesize($_FILES["upfil"]["tmp_name"]))) { if ( empty( $_POST['upfil']['size'] ) || $_POST['upfil']['size'] == 0 ) { die( 'Du skal uploade et JPEG- eller GIF-billede.' ); } else { die( 'Der kan kun uploades JPEG og GIF billeder.' ); } }
Ikke forstået? Der står !($str = @getimagesize($_FILES["upfil"]["tmp_name"])) - så hvis getimagesize fejler og returnerer false, så er det ikke et billede ;)
hmme stadig en ting.. Hvis jeg uploader et billede der er for stort så skulle den skrive det, men det gør den ikke er denne forkert ?? " if (!empty($_POST['upfil']['tmp_name'])) { " :
Her er hele kodestumpen : <? if (!empty($_POST['upfil']['tmp_name'])) { if (!empty($_FILES['upfil']['name']) && false == ($str = getimagesize($_FILES["upfil"]["tmp_name"]))) { ?> <tr><td width="7%" ><br> </td><td class="td17"><br><b>Det er ikke et billede du uploader !</b></td><td width="13%"><br> </td></tr> <? } ?> <? if ($fil_stoerrelse > "200" && preg_match("/\.(gif|jpe?g)$/i",$_FILES['upfil']['name'])) { ?> <tr><td width="7%" ><br> </td><td class="td17"><br><b>Det billede du prøver at uploade er for stort, max 4 MB !</b></td><td width="13%"><br> </td></tr> <? } ?> <? } ?>
NÅ NU TROR jeg det virker :-) Endnu engang MANGE tak for hjælpen !
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.