Avatar billede nc85 Nybegynder
04. juni 2007 - 18:09 Der er 7 kommentarer

Hvorfor resizer den ikke?

Hey alle...

Hvordan kan det være den ikke resizer billedet ned i størrelser og gemmer det i den størrelse som det bliver resizet til ?`

<? include("../includes/cnx.php"); ?>
<? include("../includes/rtrnfuncs.php"); ?>

<?
$Doc_ID = $_REQUEST['doc_id'];
$file = $_FILES['userfile'];

if($file == "" ){
        echo '<script>alert("Du skal vælge et billede");</script>';
        echo '<script>history.back(-1);</script>';
}

// Do this process if user has browse the file and click the submit button
$image_types = Array ("image/bmp","image/jpeg","image/jpg","image/pjpeg","image/gif","image/x-png");

  if ( !empty( $_FILES['userfile'] ) )
    {
        if ( is_uploaded_file( $_FILES['userfile']['tmp_name'] ) )
        {
            $bname = basename($_FILES['userfile']['name']);
            if (move_uploaded_file( $_FILES['userfile']['tmp_name']
                ,"../../userimages/" . $bname) )
            {
                resize( "../../userimages/$bname", "../../userimages/$bname", 500, 1000000 );
                //resize( "600/$bname", "300/$bname", 300, 1000000 );
                //resize( "300/$bname", "200/$bname", 200, 1000000 );
                //resize( "200/$bname", "100/$bname", 100, 1000000 );
                // Gem evt $bname i databasen
            }
        }
    //}

  $file_name = $_FILES["userfile"]["name"];
  $file_size = $_FILES["userfile"]["size"];
  $file_type = $_FILES["userfile"]["type"];

  if (in_array (strtolower ($file_type), $image_types)) {
    $SQL = sprintf("INSERT into doc_images(image_type, image, image_size, image_name, doc_id, url) values('%s', '%s', '%s', '%s', '%s', '%s')", mysql_real_escape_string($file_type), mysql_real_escape_string($userfile), mysql_real_escape_string($file_size), mysql_real_escape_string($file_name), mysql_real_escape_string($Doc_ID), mysql_real_escape_string($bname));

    $mq = mysql_query($SQL) or die(mysql_error());

    ?>
    <script>document.location.href="edit-image.php?doc_id=<?=$Doc_ID?>&t=<?=time()?>;>"</script>
    <?
    exit();
  }
}
?>
Avatar billede nc85 Nybegynder
04. juni 2007 - 18:42 #1
hov, glemte funktionen:

<?

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 );
}

?>
Avatar billede jakobdo Ekspert
04. juni 2007 - 19:10 #2
Er du sikker på resize bliver kaldt?
Prøv i din: if (move_uploaded_file( $_FILES['userfile']['tmp_name']
                ,"../../userimages/" . $bname) )
{

at skriv:
echo 'Move_uploaded_file success';

og se om det bliver udskrevet.
Avatar billede nc85 Nybegynder
04. juni 2007 - 19:18 #3
Jamen den uploader billedet fint, det bliver bare ikke resizet, så det er ligesom om at den ikke bliver kørt ?
Avatar billede jakobdo Ekspert
04. juni 2007 - 19:52 #4
Resize() er kun til jpeg.
Er det en jpeg fil du tester på?
Avatar billede terrak Nybegynder
04. juni 2007 - 19:54 #5
Nu tester du vel ikke med et billede der har en bredde på 500 pixels, vel?
Avatar billede jakobdo Ekspert
04. juni 2007 - 20:02 #6
Eller mindre ?
Avatar billede terrak Nybegynder
04. juni 2007 - 20:16 #7
Jeg har lige testet funktionen på min egen maskine og et mindre billede bliver forstørret til 500 pixels og et større billede formindskes til 500 pixels.

Et skud i tågen: din
upload_tmp_dir
i php.ini er vel ikke samme sti som du flytter filen til, altså mappen userimages. Hvis funktionen af en eller anden grund ikke blive kørt, kunne det forklare hvorfor filen stadig findes i den mappe, men ikke resizes.

Prøv evt. at fjerne din
<script>document.location.href="edit-image.php?doc_id=<?=$Doc_ID?>&t=<?=time()?>;>"</script>
for at se om der kommer en fejlmeddelelse.
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