Avatar billede Jakie Juniormester
21. februar 2013 - 18:51 Der er 5 kommentarer og
1 løsning

Warning: imagecreatefromgif() [function.imagecreatefromgif]: 'public/upload/hej.gif' is not a valid GIF file in

Hej Eksperter.

Jeg har et uploadingsscript til billeder, men der er et problem. Ofte så kommer scriptet op med denne fejlmeddelelse:
Warning: imagecreatefromgif() [function.imagecreatefromgif]: 'public/upload/hej.gif' is not a valid GIF file in

Jeg forstår ikke helt, for det er ikke altid, at denne fejl kommer op. Det kommer helt an på billedet.

Fejlen skulle angiveligt være i denne funktion:
function resize( $filename, $newfilename, $maxw, $maxh, $quality=85 )
                {
                  $extension = getExtension($filename);
                  switch($extension)
                  {
                    case 'jpeg':
                    case 'jpe':
                    case 'jpg':
                      $srcim = imagecreatefromjpeg( $filename );
                      break;
                    case 'gif':
                      $srcim = imagecreatefromgif( $filename );
                      break;
                    case 'png':
                      $srcim = imagecreatefrompng( $filename );
                      break;
                    default:
                      return false;
                  }

Her: $srcim = imagecreatefromgif( $filename );

Nu er der her tale om en gif fil. Jeg tillader kun png, gif og jpg filer og det gælder for alle typer, at der er nogen billder, der accepteres af scriptet.

Hvad er der galt?
Avatar billede olebole Juniormester
21. februar 2013 - 22:07 #1
<ole>

Det er ikke til at sige uden at teste, hvad der sker - men det er ikke utænkeligt, at der er tale om beskadigede billedfiler

/mvh
</bole>
Avatar billede Jakie Juniormester
22. februar 2013 - 00:36 #2
Efter at have testet. så har du hypethotese om beskedigede filer være korrekte..

Nyt spørgsmål: Hvordan håndterer jeg i PHP, hvis en fil er skadet? Kan man teste om en fil er beskediget?
Avatar billede Jakie Juniormester
22. februar 2013 - 00:37 #3
* Skulle ikke have været et svar :)
Avatar billede olebole Juniormester
22. februar 2013 - 00:45 #4
Det kan være meget forskelligt, der er galt, så dette er nok det letteste:

$srcim = @imagecreatefromgif( $filename );
if (!$scrim) {
    // Nasty stuff hit the fan!
}

Snabel-A undertrykker fejl, og da funktionen returnerer false ved fejl, er check'et enkelt  =)
Avatar billede Jakie Juniormester
22. februar 2013 - 01:10 #5
Tak for svar. Jeg gætter på at du ikke samler på point? ;) :P
Avatar billede olebole Juniormester
22. februar 2013 - 01:28 #6
Yup, du lukker bare selv  =)
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