Avatar billede voyager_dfs Nybegynder
13. februar 2005 - 23:54 Der er 17 kommentarer og
1 løsning

hvorfor virker min "if" ikke

tja som min titel siger hvorfor virker min if ikke ?

                      $image = @imagecreatefromjpeg($uploaddir2);
                      if(!$image){
                      echo 'Billedet er for stort lav det minder ved af klippe noget af sidene eller lav det minder.\n';
                      //header('Location: ../index.php?linkset=admin&linksub=uploadpiz&id='.$_GET['id'].'&err=5');

                      }else {
                          $image_p = imagecreatetruecolor($new_width, $new_height);
                          imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
                          ImageDestroy($image);
                                    // 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');
                      }
Avatar billede Slettet bruger
14. februar 2005 - 00:51 #1
Er $uploaddir2 et jpeg-billede?

Hvordan "virker ikke"?
Avatar billede voyager_dfs Nybegynder
14. februar 2005 - 07:08 #2
hov ja... det er denne if der ikke virker
$image = @imagecreatefromjpeg($uploaddir2);
                      if(!$image){...
Avatar billede bojo Nybegynder
14. februar 2005 - 08:04 #3
Det gør den nok også:

imagecreatefromjpeg() returns an empty string on failure

og if( "" ) er falsk

prøv

<?php

if( "" )
    echo "sand";
else
    echo "falsk";
?>
Avatar billede bojo Nybegynder
14. februar 2005 - 08:09 #4
Fjern evt. @ så du får fejlmeddelelsen

prøv

$im = @imagecreatetruecolor(8000, 8000);

hhv

$im = imagecreatetruecolor(8000, 8000);
Avatar billede voyager_dfs Nybegynder
14. februar 2005 - 08:51 #5
skulle måske sige at hvis billedet ikke er for storet virker det fint også er det igen problemmer med at lave billedet om.. men hvis billedet er for storet (efter servereren har "pakket" det ud) kommer det en fejl med at billeder går over de 8MB serveren er sat til.. (jeg kan ikke komme til serveren )
Avatar billede bojo Nybegynder
14. februar 2005 - 08:56 #6
Så er du med rimelig sikkerhed rendt ind i samme problem som flere andre. Din server adm. har bestemt at du ikke må bruge "meget RAM".

Udføre = imagecreatetruecolor(8000, 8000); - Uden @ for at få fejlmeddelelser

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 32000 bytes) in /mnt/dkcphnas003/www/l/4/l4.dk/exp/590560.php on line 5
Avatar billede voyager_dfs Nybegynder
14. februar 2005 - 12:23 #7
ja det er det jeg også er kommet til, det ville så heller ikke gøre mig noget hvis det var mig der skulle bruge det site jeg laveter på men det er det ikke, det er til bruger det ikke ved rat meget om computer så i tilfælde af billedet er forstort vil jeg godt komme med min fejl bedsked så bruger kan forstå hvad der er galt :)
Avatar billede bojo Nybegynder
14. februar 2005 - 13:04 #8
der er vel kun en (to måske )vej så

1. fjern @ så fejlen vises.
2. find ud af hvor store billeder den kan tage og læg en pæn "fejl rutine" ind.
Avatar billede voyager_dfs Nybegynder
14. februar 2005 - 17:06 #9
nej nummer et er ikke en mulighed da det er "dumme" bruger jeg har med at gøre.
nummer 2 er heller ikke en mulighed da jeg jo ikke kan se hvor meget et jpeg billede fylder som BMP før jeg laver det om...
Avatar billede bojo Nybegynder
14. februar 2005 - 19:56 #10
det er imagecreatetruecolor der fejler, så hvor stor kan du lave den
Avatar billede voyager_dfs Nybegynder
14. februar 2005 - 21:37 #11
8MB
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 8192 bytes) in /customers/XXXXXXXXX/XXXXXXXXX/httpd.www/piller/phpf/upload.php on line 43
Avatar billede bojo Nybegynder
14. februar 2005 - 22:03 #12
hehe - ja den virker som en "fejl fejl" jeg tror måske det betyder at du forsøger at tage 8192 mere end du må.

Jeg får ( på et 8000 x 8000 pic )

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 32000 bytes)

men pyt nu, det betyder "Fy, det må du ikke. Brug ikke så meget RAM" :-)
Avatar billede voyager_dfs Nybegynder
14. februar 2005 - 22:32 #13
ja det ved jeg desvære.. men nu har jeg lavet så de max kan uploade billeder på 1024x768 så må de lave med det.
(den fejl fik jeg ved et 2048x1536)
så vil sige problemmet er afsluttet men ikke løst :/
Avatar billede bojo Nybegynder
14. februar 2005 - 23:01 #14
nææ, en løsning nås nok kun ved enten at hoste siden selv eller få lov til at "overbelaste" serveren
Avatar billede voyager_dfs Nybegynder
26. februar 2005 - 17:29 #15
efter heg fik denne formel kunne jeg lave en løsning til problemmet.. :)
(bits/pixel)*(antal pixels)
Så for f.eks. 1240 x 1242 i 24 bit farve:
24*(1240*1242) = 36961920 bits = 12320640 bytes.
Avatar billede voyager_dfs Nybegynder
26. februar 2005 - 17:30 #16
bla
Avatar billede bojo Nybegynder
27. februar 2005 - 09:58 #17
hvad fik du løst? kan du arbejde med store billeder eller... hvis du kan det vil jeg da gerne høre om hvordan.
Avatar billede voyager_dfs Nybegynder
27. februar 2005 - 16:06 #18
når en burger uploader et jpg billed finder jeg højen og breden på billede og ligger det ind i den her formel 24*(højen*breden) som så giver billedet størelse i bit og hvis det er mere end 8MB kommer der en fejl til brugen om han skal lave det minder. så jeg resizer det ikke før jeg har lavet den berengning på jpg billedet og der ved ungår jeg at gå over de 8MB :)
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