Avatar billede public2 Nybegynder
15. maj 2009 - 21:38 Der er 2 kommentarer og
1 løsning

PHP Upload image og så Resize det

Hej eksperter,

jeg har hvad der synes at være et meget simpelt spørgsmål, men da jeg er lidt af en nybegynder til PHP, så har jeg dog alligevel lidt problemer.

Sagen er den, at jeg har et lille forum jeg har lavet, hvor det er muligt at uploade vedhæftede billeder. Selve upload funktionen er lavet og virker, og den sætter billednavnet til id'et og redirecter automatisk til indlægget og billedet bliver også fint vist. Alt sammen meget godt.

Nu er problemet bare, at uploader man et billede med lidt for store dimensioner, så kommer siden mildest talt til at se meget "skæv" ud. Jeg har googlet lidt frem og tilbage og også været herinde og se forrige indlæg, så jeg ved at jeg ikke er den eneste der har sådan et behov.
Jeg har prøvet at følge eksempler både herfra og fra diverse sider, men synes stadig at have svært ved det.

Min kode ser ud som følgende:

if (isset($_FILES['image'])) {

if (($_FILES['image']['type'] == "image/pjpeg")
|| ($_FILES['image']['type'] == "image/jpeg")
|| ($_FILES['image']['type'] == "image/gif" )) {

$ext = strrchr($_FILES['image']['name'],'.');
$name = basename($_FILES['image']['name'], $ext);
$newimagename = $post->getID().$ext;
$pathstring = "attachments/";

if (move_uploaded_file($_FILES['image']['tmp_name'], $pathstring.$newimagename)) {       

$Attimage = new ForumAttachment();
$Attimage->setFilePath($pathstring.$newimagename);
$Attimage->setForumPostID($post->getID());
$Attimage->insert();

Det skal lige siges, at jeg benytter mig af PEAR frameworket db_DataObject så derfor ser min insert kode og SQL ud som den gør, men bare tag mit ord for, at det altså virker :-)

Ja, I kan jo nok godt selv regne ud hvor og hvordan det skal gøres, men jeg vil alligevel for god orden skyld lige nævne, at det jeg ønsker er, at filen bliver uploadet. Så bliver højde og bredde aflæst, og er den for stor i forhold til et max (som jeg tænker skal være 400px, så skal den resizes, men selvfølgelig efter korrekte ratio, så der ikke kommer til at være mærkelige udstrukket billeder og den slags.

Når det så er sket, skal billedet gemmes i mappen "attachments" med filnavnet ID, som jeg har deklareret i variablen "$newimagename".

Ja, det er vel egentlig "bare" det og jeg kan næsten se ud fra alle de eksempler at det meget er den samme fremgangsmåde, men jeg er sgu gået hen og forvirret mig selv så meget, at jeg kogler rundt i den og konstant ender med fejl :-S

Så jeg vil i sagens kerne blive utroligt glad for hvis der var en som sad med en løsning, der bare fungede og som selvfølgelig bliver kvitteret med en omgang point.

På forhånd tak for jeres hjælp og tid

Mvh
Emil
Avatar billede welcor Nybegynder
15. maj 2009 - 23:15 #1
Avatar billede public2 Nybegynder
17. maj 2009 - 19:53 #2
Hej welcor,

det var et par rigtig gode links. Jeg læste dem igennem og nu virker det :-)

Tak for din tid, så hvis du vil smide mig et svar, så skal jeg sørge for at du bliver kvitteret for de gode referencer.
Avatar billede welcor Nybegynder
17. maj 2009 - 23:10 #3
Bare glad for at hjælpe.
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