Avatar billede nightcoder Nybegynder
25. september 2007 - 15:37 Der er 3 kommentarer

blank side ved upload

Nogen som kan se hvorfor dette script, giver en blank side i browseren. Det sker kun hvis jeg uploader større billeder.


function resize( $filename, $newfilename, $maxw, $maxh, $ext )
{
    $result = false;
    switch($ext)
    {
        case "jpg":
        case "jpeg":
        case "jpe":
            $srcim = imagecreatefromjpeg( $filename );
            break;
       
        case "gif":
            $srcim = imagecreatefromgif( $filename );
            break;
       
        case "png":
            $srcim = imagecreatefrompng( $filename );
            break;
       
        default:
            return false;
    }
    $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 );
   
    switch($ext)
    {
        case "jpg":
        case "jpeg":
        case "jpe":
            $result = imagejpeg( $dstim, $newfilename, 85 );
            break;
       
        case "gif":
            $result = imagegif( $dstim, $newfilename );
            break;
       
        case "png":
            $result = imagepng( $dstim, $newfilename );
            break;
       
        default:
            return false;
    }
   
    imagedestroy( $dstim );
    imagedestroy( $srcim );
    return $result;
}


$allowPics = array("jpg","jpeg","jpe","png","gif");
$errmsg = "";
$imgID = 0;

if(isset($_POST['submit']))
{
    if($_FILES['pic1']['size'] > 3000000000000)
    {
        echo "<script>alert('Billedet er for stort!');</script>";
    }
    else
    {
        $extension = strtolower(end(explode(".",$_FILES['pic1']['name'])));
        if(!in_array($extension,$allowPics))
        {
            echo "<script>alert('Forkert filformat!');</script>";
   
        }
        else
        {
            move_uploaded_file($_FILES['pic1']['tmp_name'],"latest.img");
            $image      = mysql_real_escape_string(file_get_contents("latest.img"));

            if ($_POST['sizelarge'] != ''){

            $large_dimensions = $_POST['sizelarge'];
            resize("latest.img","latest.img",$large_dimensions,$large_dimensions,$extension);
            $image  = mysql_real_escape_string(file_get_contents("latest.img"));
           
            }
           
            if ($_POST['sizesmall'] != ''){
            $small_dimensions = $_POST['sizesmall'];
            }else{
            $small_dimensions = '110';
            }
           
            resize("latest.img","latest.img",$small_dimensions,$small_dimensions,$extension);
            $resized  = mysql_real_escape_string(file_get_contents("latest.img"));

            mysql_query ("UPDATE images SET extension = '".$extension."', smallimg = '".$resized."', largeimg = '".$image."', name='".$_FILES['pic1']['name']."' WHERE id = '".$_POST['id']."'") or die(mysql_error());
            $imgID = mysql_insert_id();

        }
    }
}
Avatar billede erikjacobsen Ekspert
25. september 2007 - 15:47 #1
Det er en typisk reaktion når filen er større, eller der bruges mere tid på beregning, end serveren er indstillet til. Man kan ikke uploade store filer på et almindeligt webhotel - på egen server kan man indstille hvad man vil, stort set.
Avatar billede erikjacobsen Ekspert
25. september 2007 - 15:47 #2
...altså med PHP ;)
Avatar billede michael_stim Ekspert
25. september 2007 - 15:48 #3
Formodentlig fordi fejlmeddelser er slået fra og at php.ini ikke accepterer de störrelser du pröver at uploade.
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