Avatar billede voyager_dfs Nybegynder
12. februar 2005 - 16:35 Der er 7 kommentarer og
1 løsning

Upload af billede

hej
jeg har lavet dette og det viker fint... men kun i firefox o.O
i IE siger den bare den skal være jpg.. jeg fatter ikke hvorfor.
require("./cont.php");

//Laver et random fil navn
//$img_name = rand();
$img_name = $_GET[id];
if ($userfile){
        //$uploaddir = $pixdir.$img_name.'.jpg';
        $uploaddir2 = basename($HTTP_POST_FILES['userfile']['name']);
        //Se om det er et jpg
        switch($HTTP_POST_FILES['userfile']['type']) {
              case "image/jpeg":
                    $uploaddir2 = $uploaddir.$img_name.'.jpg';
                    break;
              default:
                      header('Location: ../index.php?linkset=admin&linksub=uploadpiz&id='.$_GET['id'].'&err=1');
                    //echo "Filen du vil uploade skal være jpg (jpeg)";
                    die;
      }
        //Se om der findes en fil ved navnet
          if (!file_exists($uploaddir2)) {

            //Flyt fra temp til hvor det skal være
            if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $uploaddir2)) {

              //Giver navnet til det lille billede
            $filename = $pixdir.$img_name.'_thumb'.'.jpg';

// Fil størlse
$percent = 0.5;

// Set ny størlse
list($width, $height) = getimagesize($uploaddir2);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($uploaddir2);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

// Gemmer og slettet
imagejpeg($image_p, $filename, 60);
              if(file_exists($uploaddir2)){
                unlink($uploaddir2);
              }
                //echo 'Billedet er bliver lagt op. luk bare dette vindu igen.\n';
                header('Location: ../index.php?linkset=pro');
            } else {
                    header('Location: ../index.php?linkset=admin&linksub=uploadpiz&id='.$_GET['id'].'&err=2');
              // echo "Fejl ved upload.\n";
            }
            }else {
                    header('Location: ../index.php?linkset=admin&linksub=uploadpiz&id='.$_GET['id'].'&err=3');
              //echo 'Der er en fil med samme navn, giv den et andet navn og prøv igen!';
        }
}else{
        header('Location: ../index.php?linkset=admin&linksub=uploadpiz&id='.$_GET['id'].'&err=4');
        // echo 'userfile er ikke sat';
        }
Avatar billede erikjacobsen Ekspert
12. februar 2005 - 16:40 #1
Måske en extra
  case "image/jpg":

Du bør også checke på extension, så en hacker ikke uploader en .php fil som image/jpg
Avatar billede voyager_dfs Nybegynder
12. februar 2005 - 16:51 #2
en mere case ?... hvad skulle det gøre da ?
Avatar billede erikjacobsen Ekspert
12. februar 2005 - 17:07 #3
switch($HTTP_POST_FILES['userfile']['type']) {
              case "image/jpeg":
              case "image/jpg":


...eller hvad nu den anden browser synes det skal være.
Avatar billede voyager_dfs Nybegynder
12. februar 2005 - 19:39 #4
doh... takker det virker nu
den hedder image/pjpeg i IE
mange tak..
ved du om men kan gøre noget så det er lige meget hvor storet et billede man uploader ?.
lige nu skriver den:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 8192 bytes) in /XXXX/xxxx/xxxx/xxxx/xxxx/xxxxx/upload.php on line 42

jeg kan ikke komme til serveren da det ikke er min :/

ps. smit et svar :)
Avatar billede erikjacobsen Ekspert
12. februar 2005 - 19:41 #5
Du kan nok ikke gøre noget ved max. størrelse - formentlig.
Jeg samler ikke på point - svar selv, accepter eget svar.
Avatar billede voyager_dfs Nybegynder
12. februar 2005 - 20:06 #6
ved du så hvor stor et billede må være ?
Avatar billede erikjacobsen Ekspert
12. februar 2005 - 20:12 #7
Tyder på noget omkring 8 MByte - men det er efter det er udpakket, da du kører
nogle funktioner på det. Et andet spørgsmål her til aften gav bøvl allerede ved
800x800 pixels, hvor .jpg filen bare var ca. 30 kB
Avatar billede voyager_dfs Nybegynder
12. februar 2005 - 20:22 #8
ja.. så et er mulig at bedømme ud fra det.. jeg finder på noget andet... takker for hjælpen :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester