Avatar billede energie Nybegynder
24. februar 2006 - 14:01 Der er 5 kommentarer

Vis billede efter upload

Hej;

Har nedenstående script og det uploader herligt til min mappe upload. Men jeg vil gerne have at billeder bliver vist i samme html eller om ikke andet i et nyt vindue. Jeg har en ramme som altid skal omkranse billedet, så det er vigtig at jeg selv kan placere det uploadede billede...

Script:
<?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)) {
                return $fil_sti;
            } 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 ($_POST[go]) {

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

}
?>

<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>

<?php
echo list_filer("upload");
?>
Avatar billede jackass- Nybegynder
24. februar 2006 - 14:59 #1
if (move_uploaded_file($fra, $til)) {
  return $fil_sti;
  echo "<img src=\"$til\" border=\"0\">";
}
Avatar billede energie Nybegynder
24. februar 2006 - 15:18 #2
Det dur sgu ikke... den giver viser kun;

Notice: Use of undefined constant go - assumed 'go' in C:\Apache2\htdocs\flash\html\getfile.php on line 92

Filen 'centrebet.jpg' eksisterer allerede i 'upload' og filen omdøbes derfor til 'centrebet(4).jpg'


Notice: Undefined variable: fil_sti in C:\Apache2\htdocs\flash\html\getfile.php on line 77

(INPUT BOKS)
 
Filer på lager:
Avatar billede energie Nybegynder
24. februar 2006 - 15:19 #3
Og på linje 77 er  return $fil_sti;
Avatar billede jackass- Nybegynder
24. februar 2006 - 15:55 #4
Slet linie 77 og smid dette ind i stedet:

echo "Du har uploadet dette billede: <br><br><img src=\"$til\" border=\"0\">";

De andre fejl har intet med billedvisningen at gøre :)
Avatar billede coderdk Praktikant
24. februar 2006 - 19:39 #5
De andre fejl:

if ($_POST[go]) {

bør være:

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

Den anden $fil_sti findes jo ingen andre steder?!
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