Avatar billede oldnick Nybegynder
30. maj 2006 - 20:59 Der er 9 kommentarer og
1 løsning

Upload af jpeg med resize. Hvor filer må være +5mb

Hej

Problemet er at jeg ikke kan uploade billeder over ca. 1,5 mb.
Her er koden:
function resize( $filename, $newfilename, $maxw, $maxh )
{
    $srcim = imagecreatefromjpeg( $filename );
    $ow = imagesx( $srcim );
    $oh = imagesy( $srcim );
    $wscale = $maxw / $ow;
    $hscale = $maxh / $oh;
    $scale = ( $hscale < $wscale ? $hscale : $wscale );
    $nw = round( $ow * $scale, 0 );
    $nh = round( $oh * $scale, 0 );
    $dstim = imagecreatetruecolor( $nw, $nh );
    imagecopyresampled( $dstim, $srcim, 0, 0, 0, 0, $nw, $nh, $ow, $oh );
    imagejpeg( $dstim, $newfilename, 85 );
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return file_exists($newfilename);
}

$uploadDir = "../xxx/photo/"; //Husk mappen skal chmod'es til 644
$maxHeight = 640;
$maxWidth  = 640;
$maxSize  = 4; //Angives i MB
$pics      = array('jpeg','jpg','jpe'); //Hvilke filtyper vil vi godtage?

$maxSize  = $maxSize * 1024 * 1024;

if($_FILES['userFile']['size'] > 0)
{
    $uploadfile = $uploadDir . basename($_FILES['userFile']['name']);
 
    if($_FILES['userFile']['size'] > $maxSize)
    {
        echo "Dit billede er for stort, prøv med mindre...";
        exit();
    }
 
    $ext = strtolower(end(explode('.',$_FILES['userFile']['name'])));
 
    if(!in_array($ext,$pics))
    {
        echo "Forkert billede format, prøv med et andet...";
        exit();
    }

    if(!resize( $_FILES['userFile']['tmp_name'], $uploadfile, $maxWidth, $maxHeight ))
    {
        echo "Det fejlede at resize billedet : " . $uploadfile . "! Prøv igen<br />";
    }
    else
    {   
        echo '<p>Billede er nu Tilf&oslash;jet</p>';
    }
}
?>
<FORM enctype="multipart/form-data" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<label>Upload: </label><br />
<input name="userFile" type="file" /><br />
<input type="submit" name="Submit" value="Add" /></FORM>
Avatar billede tdafoobar Nybegynder
30. maj 2006 - 21:00 #1
"Problemet er at jeg ikke kan uploade billeder over ca. 1,5 mb."

Det er nok nærmere din servers indstillinger, end dit php script som er skyld i det :p
Avatar billede jakobdo Ekspert
30. maj 2006 - 21:09 #2
$maxSize  = $maxSize * 1024 * 1024; er ca angivet til 1mb.
Så ret den evt til:
$maxSize  = $maxSize * 1024 * 1024 * 2; //2mb eller større.
Avatar billede oldnick Nybegynder
30. maj 2006 - 21:18 #3
Her er den fejl jeg får:
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 2560 bytes)...sti til filen... on line 44

Billede var på 1,4mb.

jeg har b-one webhotel og i phpinfo(); siger den at jeg har 16mb memory og 12mb max_file_upload.
Avatar billede jakobdo Ekspert
30. maj 2006 - 21:21 #4
Hvor stort er billeder i dimensioner?
Avatar billede tdafoobar Nybegynder
30. maj 2006 - 21:21 #5
ja, men det har intet med upload size at gøre.

Det er fordi at gdlib I php skal bruge over 16mb RAM for at resize et billede på 1.4mb.
Avatar billede oldnick Nybegynder
30. maj 2006 - 21:25 #6
hmm, ok, så der er ikke rigtigt noget at gøre ved det???

Kan du så svare mig på hvordan man sletter en fil fra serveren?? (skal jeg oprette en ny tråd?)
Avatar billede jakobdo Ekspert
30. maj 2006 - 21:30 #7
Avatar billede oldnick Nybegynder
30. maj 2006 - 21:36 #8
Tak, jeg kommer nok ikke nærmer en løsning, så hvis du lige kaster et svar så skal jeg nok kaste nogle points din vej.. :)
Avatar billede jakobdo Ekspert
30. maj 2006 - 21:41 #9
svar.
Avatar billede jakobdo Ekspert
30. maj 2006 - 22:02 #10
Takker for point.
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

IT-JOB