05. marts 2009 - 16:45Der er
13 kommentarer og 1 løsning
Billedeupload - resize/crop og omdøbning
Pænt goddag..
Med hjælp fra artiklerne herinde har jeg fået strikket et billedeupload system sammen, hvor den automatisk generer en thumbnail.. Det ser ud som følgende:
//Er der trykket på Upload file knappen? if(isset($_POST['myUpload'])) { //Har vi en fil? if(is_uploaded_file($_FILES['myFile']['tmp_name'])) { //Filendelse $extension = getExtension($_FILES['myFile']['name']);
Det første problem opstår i at mine thumbs godt når bliver resized, så de er 55 i bredden. Men højden bliver ikke sat til 70 som jeg ønsker, højst sandsynligt pga. det bliver lavet på samme måde som i photoshop hvis man vælger "constrain proportions" ved resize.. Hvordan får jeg lavet sådan at den laver thumbs med målene 70x55 UANSET hvilke dimensioner de har når de bliver uploadet? Er vi ude i noget crop her eller hvordan?
Andet problem er lidt mindre og det ligger i at jeg ikke lige kan finde frem til hvordan jeg ændrer navnet på både det normale billede + thumb til noget andet end hvad det hedder når jeg uploader det?
Det sidste problem ligger i at jeg gerne vil have at den ligesom med thumbsne også resizer det oprindelige billede som bliver uploadet. Hvis jeg får det gjort har jeg også på fornemmeren at det bliver lidt lettere at løse første problem. Men hvordan gør jeg det?
Det var satme hurtig respons, props for det ;) Billede størrelsen virker som den skal nu - dejligt!
Men hvordan siger du så jeg skal omdøbe billederne? I mit tilfælde vil jeg gerne have at billeder hedder det som min bruger session er sat til, så de er tilknyttet hver enkelt bruger. På den måde skal de gerne blive overskrevet når en bruger uploader et nyt billede, så profilbillederne ikke hober sig alt for meget op :)
Warning: imagecreatefromjpeg(images/profiles/024.JPG) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\Programmer\xampp\htdocs\her\upload.php on line 26
Warning: imagesx(): supplied argument is not a valid Image resource in C:\Programmer\xampp\htdocs\her\upload.php on line 31
Warning: imagesy(): supplied argument is not a valid Image resource in C:\Programmer\xampp\htdocs\her\upload.php on line 32
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\Programmer\xampp\htdocs\her\upload.php on line 36
Warning: imagedestroy(): supplied argument is not a valid Image resource in C:\Programmer\xampp\htdocs\her\upload.php on line 49
Ah ja, naturligvis ;) Jeg lader lige tråden stå åben og prøver at kigge på det med at få det originale billede resized i et par timer - og hvis ikke det lykkedes mig skriver jeg lige herinde igen hvis det er i orden :)
Synes nu jeg har prøvet adskillige muligheder, men det er ikke lykkedes mig at få den til at gøre som jeg ville :/ Jeg tror efterhånden jeg er kommet til at stire mig blind på koden :(
switch($extension) { case 'jpeg': case 'jpe': case 'jpg': imagejpeg( $dstim, $newfilename, $quality ); break; default: return false; } imagedestroy( $dstim ); imagedestroy( $srcim ); return file_exists($newfilename); }
//Er der trykket på Upload file knappen? if(isset($_POST['myUpload'])) { //Har vi en fil? if(is_uploaded_file($_FILES['myFile']['tmp_name'])) { //Filendelse $extension = getExtension($_FILES['myFile']['name']);
Det virker som det skal bortset fra at det originale billede beholder sine oprindelige dimensioner.. Du kan vel ikke give mig nogle hints på vej til at få det løst? Ved godt at jeg kan genbruge funktionen med resize, men er meningen så at jeg skal lave et nyt "thumb", hvorefter det oprindelige billede så skal slettes eller hvordan ?
Jeg havde ret i min første antagelse i at jeg var overtræt og havde set mig blind på kodningen.. Har i hvert fald fået det til at virke nu efter hensigten ;)
Nu har jeg så bare siddet den sidste time og prøvet at få scriptet implementeret på min side, men det er tilsyneladende noget mere tricky end som sådan. Men det må jeg prøve at se videre på efter lidt mere søvn..
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.