Avatar billede energie Nybegynder
22. februar 2006 - 12:59 Der er 17 kommentarer og
1 løsning

Upload billede og vis i grafik!

Endnu et upload spørgsmål. Jeg skal bruge et script, som kan uploade en grafik (størrelse er angivet på forhånd til bruger) og vise den i et design lige efter. Forestil jer at jeg har en ramme til et maleri liggende online. Og i det maleri må brugeren selv uploade et hvilket som helst billede og se hvorledes det ser ud. Ikke andet.

Har læst guiden på webcafe etc.

Ps. har ikke alverdens erfaring indenfor PHP, så en lille smule skåret ud i trefarvet is må det gerne være.

Tak tak
Avatar billede jakobdo Ekspert
22. februar 2006 - 16:32 #1
Nu ved jeg ikke hvor meget du har leget med GDLIB.
Men jeg ville gøre det på følgende måde:

Lav en eller flere rammer (fast størrelse) og så lave det/dem i PNG, hvor du laver midten være transparent.

Det uploadede billede resizer du så, så det passer ind i rammen.
Derefter merger du billederne (rammen skal øverst) og gemmer det mergede billede og voila! :o)
Avatar billede energie Nybegynder
24. februar 2006 - 08:15 #2
Det kender jeg ikke forfærdelig meget til. Men kan se hvad du mener mht til midten. Dog skal jeg bruge koden til dette!!! I første omgang så blot en kode der gemmer et billede og viser det i 500-380px midt på skærmen...
Avatar billede jakobdo Ekspert
25. februar 2006 - 10:39 #3
Hvad har du nu?
Har du et fungerende uploadscript?
Og mangler kun resize delen?
Avatar billede energie Nybegynder
27. februar 2006 - 08:25 #4
Ja jeg har et velfungerende upload script... Dette uploader billedet og viser det på skærmen, men resizer hverken billedet og viser til tider 2 stk af samme billede. Det ser så således ud:
<?xml version="1.0" encoding="ISO-8859-15"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
<title>FlushAd - Se din reklame her!</title>
<link rel="stylesheet" type="text/css" href="./style.css" />
</head>
<body>
<?php

/* Funktioner der benyttes */

function list_filer($bibliotek) {

  if($bib = @opendir($bibliotek)) {
    /**
    * Denne syntaks er forklaret i PHP-manualen:
    * http://www.php.net/manual/en/function.readdir.php
    */
    while (false !== ($fil = readdir($bib))) {
      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
          $fil_liste[] = "<a href=\"$bibliotek/$fil\">$fil</a>";
      }
    }
    closedir($bib);

    if(is_array($fil_liste)) {
      $liste = "<li>" . join("</li><li>", $fil_liste) . "</li>";
    } else {
      $liste = "<li>Ingen filer p&aring; lager</li>";
    }
    return "<h2>Filer p&aring; lager:</h2><ul>" . $liste . "</ul>";
  } else {
    die("Kunne ikke &aring;bne biblioteket: " . $bibliotek);
  }

}

function upload_fil($fil, $max_stoerrelse = 4000, $bibliotek = "default", $filtyper_tilladt = "default") {

    if ($bibliotek == "default") {
        $bibliotek = "upload";
    }

    if ($filtyper_tilladt == "default") {
        $filtyper_tilladt = array("image/bmp", "image/jpeg", "image/pjpeg", "image/png", "image/gif");
    }

    if ($fil["size"] > 0) {
       
        $filnavn = strtolower(ereg_replace(" ", "_", $fil["name"]));
        $fra = $fil["tmp_name"];
        $til = $bibliotek . "/" . $filnavn;
        $fil_stoerrelse = filesize($fra)/1024;
        $filtype = $fil["type"];
        $fejl = 0;

        if (!in_array($filtype, $filtyper_tilladt)) {
            echo "<p>Filtypen '$filtype' er ikke tilladt. De tilladte filtyper er '" . implode("', '", $filtyper_tilladt) . "'. Filen '$filnavn' kan derfor ikke uploades!</p>";
            $fejl = 1;
        }
        if ($fil_stoerrelse > $max_stoerrelse) {
            echo "<p>Filen '$filnavn' er for stor og kan ikke uploades. Den fylder " . ceil($fil_stoerrelse) . " kb og der kan maximalt uploades $max_stoerrelse kb!</p>";
            $fejl = 1;
        }
        if ($fejl == 0) {
            if (file_exists($til)) {
               
                $pos = strrpos($filnavn, ".");
                $foerpos = substr($filnavn, 0, $pos);
                $efterpos = substr($filnavn, $pos + 1, strlen($filnavn) - ($pos + 1));
                $i = 2;
               
                echo "<p>Filen '$filnavn' eksisterer allerede i '" . $bibliotek . "' og filen omdøbes derfor til ";
               
                while (file_exists($til)) {
                    $filnavn = $foerpos . "(" . $i . ")." . $efterpos;
                    $til = $bibliotek . "/" . $filnavn;
                    $i++;
                }
                echo "'$filnavn'</p>";
            }

          if (move_uploaded_file($fra, $til)) {
      echo "Du har uploadet dette billede: <br><br><img src=\"$til\" border=\"0\">";
        echo "<img src=\"$til\" border=\"0\">";
}
            else {
                echo "<p>Desværre, filen '$filnavn' kunne ikke uploades!</p>";
                return false;
            }
        }
    } else {
        echo "<p>Der er ikke vedhæftet nogen fil!</p>";
    }
}

/* Siden starter */

if (!empty($_POST['go'])) {

    $fil = $_FILES["upfil"];
    upload_fil($fil);

}
?>
<div class="flush">
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
<fieldset>
  Upload fil<br />
  <input type="file" name="upfil" size="30" /><br />
  <input type="submit" name="go" value="Upload" />
</fieldset>
</form>
</div>
</body>
</html>
Avatar billede jakobdo Ekspert
28. februar 2006 - 21:52 #5
Prøv at se denne kode: http://www.codebreaker.dk/exp/690046.php
Prøv at upload et jpeg billede.
Avatar billede energie Nybegynder
01. marts 2006 - 15:06 #6
Hej jakobdo;

Den ser ud til at virke som den umiddelbart skal... skalere den blot jpeg billedet? Eller bestemmer den str.? For når jeg uploader to forskellige billeder med forskellige ligger den dem næsten ind i samme str... Ser umiddelbart godt ud!
Avatar billede jakobdo Ekspert
01. marts 2006 - 15:07 #7
Ja, den skalere dem ned.
Max height eller width = 400.
Avatar billede energie Nybegynder
01. marts 2006 - 15:51 #8
okay... jamen det er jo den perfekte kode... idet mine brugere alle uploader et I A3 format, så kan den automatisk skalere den ned i min ramme. Hvad med koden, hvordan får jeg den :-)
Avatar billede jakobdo Ekspert
01. marts 2006 - 15:57 #9
Prøv at kig på siden nu: http://www.codebreaker.dk/exp/690046.php
Avatar billede energie Nybegynder
03. marts 2006 - 08:45 #10
Det er kanon, men jeg er lidt i tvivl om, hvor jeg skal ændre noget. I første omgang naturligvis ramme-navnet, width og height, som jeg har angivet til:
w. 272px
h. 392px
Denne str. passer ind i min ramme.
Men den udskriver ikke noget. Kun loading tmp/php/
hmmm mht. til mit ovenstående script... hvad skal jeg så præcis ændre?
Tak for hjælpen i øvrigt.
Avatar billede jakobdo Ekspert
03. marts 2006 - 09:16 #11
Hvis du bruger mit script direkte, skal du ændre:
$ramme        = "690046.png"; //Din ramme...
$width  = 400; //Bredde på resized billede...
$height = 400; //Højde på resized billede...
Avatar billede energie Nybegynder
03. marts 2006 - 10:15 #12
Den viser nogengange ingenting og andre gange kun et meget lille billede. Din
$width og $height er i px ik?
Dertil skal det osse nævnes at min ramme er i jpg!! Og hvad kan vi jeg gøre, for at den viser både, gif, jpeg, jpeg, png og måske pdf?
Avatar billede jakobdo Ekspert
03. marts 2006 - 10:17 #13
Det skal jo så tilføjes!
Ikke noget jeg har tid til lige nu.
Avatar billede energie Nybegynder
03. marts 2006 - 10:22 #14
okay... jamen hvis du får tid må du gerne tilføje det... men umiddelbart skal den vel kunne vise min ramme selvom den er i jpg?
Avatar billede jakobdo Ekspert
03. marts 2006 - 10:29 #15
Hvis din ramme er jpeg, så ret:
$dst = LoadPng($ramme);
til
$dst = LoadJpeg($ramme);
Avatar billede energie Nybegynder
03. marts 2006 - 10:51 #16
Det ser ud som om det vil virke!! Jeg ville gerne se om jeg osse kunne få png og gif til at virke... og måske pdf hvis det er muligt... ellers smid et svar og få nogle point
Avatar billede jakobdo Ekspert
03. marts 2006 - 10:54 #17
Svar!
Avatar billede jakobdo Ekspert
03. marts 2006 - 11:57 #18
Takker for point!
Og det med andre filtyper, prøv at kig lidt på php-funktionerne:
imagecreatefromjpeg, gif, png osv...
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