Avatar billede nexus-6 Nybegynder
02. marts 2003 - 01:36 Der er 4 kommentarer og
1 løsning

Fil convertering (en sidste gang);

Hejsa igen.
Inden jeg stater vil jeg lige sige tak i dig Erik, du har løs størstedelen af mine problemer omkring det, men jeg sidder desværre stadig med et sidste problem tilbage.
Har være læst meget igennem på php.net, men kan ikke faa det til at fungere.

Det var det, her er min problemstilling:
1) Med en FORM får jeg en .jpeg fil tilsend
2) Billedet skal laves om til et thumbnail
3) Det nye billede skal gemmes i mysql
4) Hent billed ud og vise det

Dette er hvad jeg har indtil videre:
//----------denne fil gemmer billed i mysql------------
$filename = $_FILES['billede']['tmp_name'];
if (is_uploaded_file($filename)) {
    $new_height = "100"; // højde paa thumbnail
    $scale = $new_height/$height;
    $new_width = $width * $scale;  // bredde på thumbnail
    $dst_img=ImageCreate($new_width, $new_height); //laver et nyt image
    $src_img=ImageCreateFromJPEG($filename);    //henter fra original filen
    ImageCopyResized($dst_img,$src_img,0,0,0,0,$new_width,$new_height,ImageSX($src_img),ImageSY($src_img));
    $sql = "INSERT INTO pix SET file='$file', thumbnail='$dst_img', type='$type', text='test billede', height='$height', width='$width', height2='$new_height', width2='$new_width'";
    sql_connect();
    sql_query($sql);
    sql_close();
    header("Location:read.php");
}

//--------Disse 2 filer udskriver billedet-------
read.php
$sql = "SELECT id, width2, height2 FROM pix";
sql_connect();
$result = sql_query_anwser($sql);
sql_close();
$t = count($result);
while ($t > 0){
    $t--;
    extract($result[$t]);
    echo "<img src='getimage.php?id=$id' height='$height2' width='$width2'>";
    echo "<BR>";
}

getimage.php
$id = $_GET['id'];
if(isset($id) && $id != ""){
    $sql = "SELECT thumbnail, type FROM pix where id='$id'";
    sql_connect();
    $result = sql_query_anwser($sql);
    sql_close();   
    extract($result[0]);
    header("Content-type: $type");
    echo $thumbnail;

Problemet ligger egentlig i at upload filen. Data'en der ligger i $dst_img kan jef fint gemme i databasen, men når jeg skal skrive billedet ud kommer der ikke noget.
Umiddelbart virker det som om jeg skal gøre et eller andet ved data'en i $dst_img.
ps. ved godt at det på en måde er anden gang jeg poster det her problem. Men jeg er efterhånden løbet tør for ideer da jeg har sidde med det her problem ret længe.
På forhånd tak
Avatar billede swaxi Nybegynder
02. marts 2003 - 02:10 #1
$sql = "SELECT thumbnail, type FROM pix where id='$id'";
$result = sql_query($sql);
$row = mysql_fetchrow($result));
header("Content-type: ".$row['type']);
echo $row['thumbnail'];
exit;
Avatar billede nexus-6 Nybegynder
02. marts 2003 - 02:22 #2
Nope. Det er virkede ikke. 
99,99% sikker på at det er noget med den data jeg smider i min database. Hvis jeg med phpmysql tager et billede og smider i databasen firker mit read/getimage script fint.
Det må simpelthen være den forbande data $dst_img der er noget i vejn med.
Avatar billede olebole Juniormester
02. marts 2003 - 04:29 #3
<ole>

Hvad har du stående i feltet 'type' i databasen?
Husker du at tildele $type værdien 'image/jpeg'?

/mvh
</bole>
Avatar billede olebole Juniormester
02. marts 2003 - 05:10 #4
Det, du indsætter i databasen, mener jeg, er en resource-id. Mon ikke du først skal lave en temp-fil med:
  imagejpeg($dst_img,"temp.jpg");
og så læse den med noget à la:
  $fp = fopen("temp.jpg", "rb");
  $img_data = fread($fp, filesize("temp.jpg"));
  fclose($fp);
  unset("temp.jpg");

Så burde dit billede vel ligge i $img_data - og kan sættes ind i databasen
/mvh
Avatar billede olebole Juniormester
02. marts 2003 - 05:16 #5
... og husk at sætte skrive-rettigheder på det dir, du opretter temp-billedet i  ;o)
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