Avatar billede htmlkongen Novice
31. marts 2004 - 08:27 Der er 19 kommentarer og
1 løsning

Upload formel?

Ved ikke om det er rigtig kategori, sorry...

Jeg skal ha lavet sådan at man kan uploade billeder ved at udfylde nogle felter også også sådan en boks hvor man skriver lidt om sig selv. Også når man trykker OK, så oploader den til ens FTP. Hvordan gør jeg det?
Avatar billede schristensen Praktikant
31. marts 2004 - 08:33 #1
Prøv evt. at kigge lidt her http://www.eksperten.dk/spm/353093
Avatar billede htmlkongen Novice
31. marts 2004 - 08:34 #2
Undskyld, men jeg har virkelig lidt forstand på det. :( Men skal man ikke sætte det op med kode osv.? (til FTP'en)
Avatar billede htmlkongen Novice
31. marts 2004 - 08:36 #3
<?php

/* Funktion der åbner en forbindelse til en specifik database */

function aabn_forbindelse() {
   
    $server = "localhost";
    $bruger = "";
    $kodeord = "";
    $database = "";

    if (!mysql_connect("$server", "$bruger", "$kodeord")) {
        udskriv_fejl("Kunne ikke oprette en forbindelse til MySQL");
    }
   
    if (!mysql_select_db("$database")) {
        udskriv_fejl("Kunne ikke vælge databasen: $database");
    }
}

/* Funktion der klarer sql-forespørgsel der IKKE modtager data */

function sql_spoerg($query) {
   
    $resultat = mysql_query($query);

    if (!$resultat) {
        udskriv_fejl("Kunne ikke udføre: <b>$query</b>");
    }
}

/* Funktion der lukker forbindelsen til databasen */

function luk_forbindelse() {
   
    if (!mysql_close()) {
        udskriv_fejl("Kunne ikke lukke forbindelsen til MySQL");
    }
}

/* Funktion der udskriver fejl */

function udskriv_fejl($fejl) {

    echo "<p>$fejl</p>";

    if ($mysql_fejl = mysql_error()) {
        echo "<br />Fejlen er: <b>$mysql_fejl</b>";
    }

    exit;
}

/* Hovedfunktioen */

function upload_fil($fil, $overskrift, $navn, $email, $website, $beskrivelse, $underskrift, $max_stoerrelse = 100, $bibliotek = "default", $filtyper_tilladt = "default") {

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

    if ($filtyper_tilladt == "default") {
        $filtyper_tilladt = array("image/bmp", "image/jpeg", "image/tiff", "image/png", "image/gif", "application/pdf", "application/zip", "application/arj", "application/x-zip-compressed", "application/octet-stream");
    }

    if ($fil["size"] > 0) {
       
        $filnavn = strtolower(ereg_replace(" ", "_", $fil["name"]));
        $fil_sti = $bibliotek . "/" . $filnavn;
        $fra = $fil["tmp_name"];
        $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(getcwd() . $fil_sti)) {
               
                $pos = strrpos($filnavn, ".");
                $navn = substr($filnavn, 0, $pos);
                $type = 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(getcwd() . $fil_sti)) {
                    $filnavn = $navn . "(" . $i . ")." . $type;
                    $fil_sti = $bibliotek . "/" . $filnavn;
                    $i++;
                }
                echo "'$filnavn'</p>";
            }

            $til = $_SERVER["DOCUMENT_ROOT"] . $fil_sti;

            if (move_uploaded_file($fra, $til)) {
                echo "<p>Filen '$filnavn' er uploadet!</p>";
                aabn_forbindelse();
                sql_spoerg("INSERT INTO dintabel (overskrift, billedet, navn, email, website, beskrivelse, underskrift) VALUES ('$overskrift', '$fil_sti', '$navn', '$email', '$website', '$beskrivelse', '$underskrift')");
                luk_forbindelse();
            } else {
                echo "<p>Desværre, filen '$filnavn' kunne ikke uploades!</p>";
                return false;
            }
        }
    } else {
        echo "<p>Der er ikke vedhæftet nogen fil!</p>";
    }
}

?>

<html>

<head>
</head>

<body>

<div>

<?php
if ($_POST[sendknap] && $_POST[overskrift] && $_POST[navn] && $_POST[email] && $_POST[website] && $_POST[beskrivelse] && $_POST[underskrift]) {

    $fil = $_FILES["upfil"];
    $max_stoerrelse = 1000;
    $upload_mappe = "/upload/diverse";
    $filer_tilladt = array("image/pjpeg", "image/bmp", "image/jpeg", "image/tiff", "image/png", "image/gif", "image/jpg");

    upload_fil($fil, $overskrift, $navn, $email, $website, $beskrivelse, $underskrift, $max_stoerrelse, $upload_mappe, $filer_tilladt);

} else {
?>

<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" enctype="multipart/form-data">
<fieldset>
  Overskrift<br />
  <input type="text" name="overskrift" value="<?php echo "$overskrift"; ?>" size="30" /><br />
  Navn<br />
  <input type="text" name="navn" value="<?php echo "$navn"; ?>" size="30" /><br />
  Email<br />
  <input type="text" name="email" value="<?php echo "$email"; ?>" size="30" /><br />
  Website<br />
  <input type="text" name="website" value="<?php echo "$website"; ?>" size="30" /><br />
  Beskrivelse<br />
  <input type="text" name="beskrivelse" value="<?php echo "$beskrivelse"; ?>" size="30" /><br />
  Underskrift<br />
  <input type="text" name="underskrift" value="<?php echo "$underskrift"; ?>" size="30" /><br />
  Vedhæft billede<br />
  <input type="file" name="upfil" size="30" /><br />
  <input type="submit" name="sendknap" value="Upload" />
</fieldset>
</form>

<?php
}
?>

</div>

</body>

</html>




Så skal jeg bare uploade det her ikke? Men hvad skal filen hedde så? Og skal jeg kun oprette en fil?
Avatar billede schristensen Praktikant
31. marts 2004 - 08:42 #4
filen kommer til at hedde det som står i variablen $navn, som bliver sat til det filen hedder inden den bliver uploadet.

Hvordan har du opbygget det?? har du en webserver kørende til at hoste dit php, og en FTP server kørende på samme pc eller hvad??
Avatar billede htmlkongen Novice
31. marts 2004 - 08:47 #5
Som sagt jeg er rigtig dum til det her :o) Jeg har bare købt et domæne, også bliver det styret derfra. Det du mener med variablen $navn er det at filen kan hedde: upload.php også skal jeg skrive det i koden?
Avatar billede kgp43 Nybegynder
31. marts 2004 - 09:07 #6
Hvormeget kender du til php?

Prøv at læse disse artikler/tutorials:
http://www.webcafe.dk/artikler/php/
http://www.webcafe.dk/artikler/php/upload/
Avatar billede htmlkongen Novice
31. marts 2004 - 09:08 #7
Jeg ved ikke noget som helst :( Men jeg skal kun bruge det denne ene gang :o)
Avatar billede schristensen Praktikant
31. marts 2004 - 09:23 #8
Du har købt et domæne, og ønsker at man via en php siden skal kunne uploade billeder til dette domæne - ikke?

Jeg brugte selv denne turtorial http://www.webcafe.dk/artikler/php/upload/
Avatar billede htmlkongen Novice
31. marts 2004 - 09:24 #9
Jo det er korrekt. Men den jeg har smidt, kan jeg ikke bare bruge den?
Avatar billede schristensen Praktikant
31. marts 2004 - 09:24 #10
Der står ikke så meget, men synes den er ok til lige at danne sig lidt overblik
Avatar billede schristensen Praktikant
31. marts 2004 - 09:25 #11
sorry havde íkke set at kqp43 havde paste det link :)
Avatar billede htmlkongen Novice
31. marts 2004 - 09:28 #12
Står ikke så meget? Hvad mener du? Er det ikke den endelige kode?
Avatar billede schristensen Praktikant
31. marts 2004 - 09:35 #13
jo...

alt hvad man behøver er egentligt

$sti = "/upload";
$tmp_name = $FILES["<navnet på dit billedefelt>"]["tmp_name"];
$destination = $sti . "/" . $FILES["<navnet på dit billedefelt>"]["name"];

//bool move_uploaded_file ( string filename, string destination)
if( move_uploaded_file( $tmp_name, $destination ) )
  echo "Hurra .... filen er gemt";
else
  echo "Øv... det virkede ikke";


PS... dette er lige skrevet - så der er sikkert masse af fejl...
Avatar billede schristensen Praktikant
31. marts 2004 - 09:36 #14
hov $FILES skal lige rettes til  $_FILES
Avatar billede htmlkongen Novice
01. april 2004 - 08:03 #15
Så det du har skrevet i >31/03-2004 09:35:43 Det gemmer jeg i en HTM fil og hvad skal jeg kalde den?
Avatar billede htmlkongen Novice
02. april 2004 - 07:57 #16
Jeg er altså i tvivl om hvad jeg skal rette af ting i den, og hvad filen skal hedde
Avatar billede kgp43 Nybegynder
02. april 2004 - 08:08 #17
Avatar billede htmlkongen Novice
05. april 2004 - 17:52 #18
Ja har jeg gjort. :) Og tak for det, Men jeg har jo den rigtige formel her i dette spørgsmål. Spørgsmålet er bare _hvad_ skal jeg ændre for at det passer. Altså server oplysninger osv :o) Det er dét jeg er  tvivl om
Avatar billede htmlkongen Novice
11. april 2004 - 12:30 #19
Tak for hjlæpen. Smid svar hvis du vil ha point
Avatar billede htmlkongen Novice
13. april 2004 - 16:48 #20
Ok men så tak
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

IT-JOB