Avatar billede crabber Nybegynder
02. maj 2007 - 18:39 Der er 12 kommentarer og
1 løsning

Images upload og resize i to verioner af samme image?

Jeg er på udkig efter noget php kode som kan resize et billede i to forskellige størrelser og upload dem til en mappe på server.
Den skal samtidig sætte stien ind i databasen.

Nogen som ved hvor jeg kan finde det eller noget jeg måske kan rettet til med lidt hjælp?

Casper
Avatar billede jakobdo Ekspert
02. maj 2007 - 20:05 #1
Du kan starte med denne kode: http://www.eksperten.dk/spm/775486
Så har du selve upload delen.
Så skal vi have fat i noget som kontrollere om det er et billede eller ej.
Avatar billede nyhuus Nybegynder
02. maj 2007 - 20:28 #2
http://www.udvikleren.dk/PHP/Article.aspx/138/

Læs denne artiktel, der er båede upload og image resize, skal du have resizet billedet i 2 størrelser kan du kigge på scriptet og evt køre nogle dele af den 2gange :)

håber det hjælper dig. jeg har selv lært at lave det ud fra denne artiktel synes den er meget god

PS. i en kommenentar til artiktelen ligger det kode der bliver brugt til at resize med mener det er en person der hedder Xyborg der har lavet det.
Avatar billede jakobdo Ekspert
02. maj 2007 - 22:18 #3
Jeg har faktisk lige lavet en artikel om upload: http://www.eksperten.dk/artikler/1098
Og du kan så evt. bruge denne funktion til at resize jpeg-billeder:
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);
}
Avatar billede nyhuus Nybegynder
02. maj 2007 - 23:14 #4
Nice nok Jakobdo, det er godt med artiktler :)
Avatar billede jakobdo Ekspert
03. maj 2007 - 07:51 #5
nyhuusdk: Tak.
Avatar billede crabber Nybegynder
05. maj 2007 - 12:22 #6
Hey. Jeg har siddet og rodet med det et stykke tid og jeg kunne ikke rigtigt få det til at virke, men så faldt jeg over denne lange kode som gør præsic det jeg gerne vil have, men det kan jeg heller ikke få til at virke.. Noget som kan se hvad der eventuelt kan være galt?

KODEN START::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
<?php

$conn = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db('images_upload_test', $conn) or die(mysql_error());

if(@$_FILES['userfile']['tmp_name']){
    resize();
    $q = "INSERT INTO images_upload_ VALUES ('', '".$blob_arr['image']."', '".$blob_arr['thumb']."', '".$blob_arr['type']."')";
    $aa = mysql_query($q,$conn) or die(mysql_error());

}       

function resize(){
    global $blob_arr;
    $temp_name =$_FILES['userfile']['tmp_name'];
    $userfile_name =$_FILES['userfile']['name'];
    $userfile_size =$_FILES['userfile']['size'];
    $userfile_type =$_FILES['userfile']['type'];

    $thumb_width=50;
    $thumb_height=50;
    $image_width=300;
    $image_height=400;

    if (!($userfile_type =="image/pjpeg" OR $userfile_type =="image/jpeg" OR $userfile_type=="image/gif" OR $userfile_type=="image/png" OR $userfile_type=="image/x-png")){
        die ("You can upload just images in .jpg .jpeg .gif and .png format!<br / >");
    }
    $data = fread(fopen($temp_name, "rb"), filesize($temp_name));
    $src_image = imagecreatefromstring($data);
    $width = imagesx($src_image);
    $height = imagesy($src_image);
    if ($thumb_width && ($width < $height)) {
          $thumb_width = ($thumb_height / $height) * $width;
    } else {
          $thumb_height = ($thumb_width / $width) * $height;
    }
    if ($image_width && ($width < $height)) {
          $image_width = ($image_height / $height) * $width;
    } else {
          $image_height = ($image_width / $width) * $height;
    }
    $dest_img = imagecreatetruecolor($thumb_width, $thumb_height);
    $i_dest_img = imagecreatetruecolor($image_width, $image_height);       
    imagecopyresized($dest_img, $src_image,0, 0, 0, 0,$thumb_width, $thumb_height,$width, $height);
    imagecopyresized($i_dest_img, $src_image,0, 0, 0, 0,$image_width, $image_height,$width, $height);
    ob_start();
    if($userfile_type == "image/jpeg" OR $userfile_type == "image/pjpeg"){
        imagejpeg($dest_img);
    }
    if($userfile_type == "image/gif"){
          imagegif($dest_img);
    }
    if($userfile_type == "image/png" OR $userfile_type == "image/x-png"){
        imagepng($dest_img);
    }
    $binaryThumbnail = ob_get_contents();
    ob_end_clean();
    ob_start();
    if($userfile_type == "image/jpeg" OR $userfile_type == "image/pjpeg"){
        imagejpeg($i_dest_img);
    }
    if($userfile_type == "image/gif"){
        imagegif($i_dest_img);
    }
    if($userfile_type == "image/png" OR $userfile_type == "image/x-png"){
        imagepng($i_dest_img);
    }
    $binaryImage = ob_get_contents();
    ob_end_clean();
    if(!get_magic_quotes_gpc()){
        $binaryThumbnail=addslashes($binaryThumbnail);
        $binaryImage=addslashes($binaryImage);
    }
    $blob_arr['image']=$binaryImage;
    $blob_arr['thumb']=$binaryThumbnail;
    $blob_arr['type']=$userfile_type;
}
if(@$_POST['submit']){
    $Rs = mysql_query("SELECT * FROM images WHERE id = '".mysql_insert_id()."'", $conn) or die(mysql_error());
    $row_Rs = mysql_fetch_assoc($Rs);
    header( "Content-type: ".$row_Rs['filetype']."");
    echo $row_Rs['thumb'];
}else{
?>
<form name="form1" method="post"  enctype="multipart/form-data" action="<?php echo @$PHP_SELF; ?>">
  <input id="userfile"  name="userfile" type="file" />
  <input type="submit" name="submit" value="Submit" />
</form>
<?php
}
?>
KODEN SLUT:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

Casper
Avatar billede crabber Nybegynder
05. maj 2007 - 12:28 #7
Jeg for denne fejl besked.
Fatal error: Call to undefined function imagecreatefromstring() in C:\wamp\www\Images_upload_resize\index.php on line 29
Avatar billede crabber Nybegynder
05. maj 2007 - 12:32 #8
Har fundet ud af at den slet ikke uploader billederne til en mappe. Kan jeg få det til?
Avatar billede nyhuus Nybegynder
05. maj 2007 - 13:24 #9
har du husket og CHMODde mappen du uploader til?
Avatar billede crabber Nybegynder
05. maj 2007 - 13:36 #10
Denne koder upload ikke til nogen mappen, men til mysql databasen
Avatar billede jakobdo Ekspert
05. maj 2007 - 19:01 #11
Du må prøve at debugge koden så.
Avatar billede crabber Nybegynder
07. maj 2007 - 17:32 #12
Jeg har prøvet mig frem og kan ikke rigtigt finde ud af det, men prøver mig frem igen senere.. Mange tak for jeres hjælp
Avatar billede jakobdo Ekspert
07. maj 2007 - 17:51 #13
Det var så lidt.
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