Avatar billede matz Nybegynder
16. juni 2004 - 14:22 Der er 21 kommentarer og
1 løsning

Billed upload

Hvor kan jeg finde et scripts hvor man kan uploade et billed med en tekst som så vises på en anden side som f.eks:

Upload af billed og tekst: upload.php
Billed & tekst vises: vis.php

Jeg har php og MySql.
Avatar billede greew Nybegynder
16. juni 2004 - 14:42 #1
Jeg bruger

upload_billede.php:

<form enctype="multipart/form-data" action="index.php?p=billeder.php" method="POST">
<table>
<tr> <td> Upload dette billede: </td> <td> <input name="filnavn" type="file"> </td> </tr>
<tr> <td> Dit navn: </td> <td> <input type="text" name="medlem_id"> </td> </tr>
<tr> <td> Skriv en kommentar til billedet: </td> <td> <input type="text" name="tekst"> </td> </tr>
<tr> <td> Send billedet: </td> <td> <input type="submit" name="submit_billede" value="Send billede"> </td> </tr>
</table>
</form>

billeder.php:

// Uploade billeder
$submit_billede = $_POST['submit_billede'];
if ($submit_billede) {
    $filnavn = $_POST['filnavn'];
    $medlem_id = $_POST['medlem_id'];
    $tempuploaddir = 'billeder/temp/';
    $uploaddir = 'billeder/';
    $uploadfile = $tempuploaddir . $_FILES['filnavn']['name'];

    StartMySQL();       
    $foresp = mysql_query("SELECT fil FROM billeder");
    while ($data = mysql_fetch_array($foresp)) {
        $fil = array($data[fil]);
    }
    $naeste_filnavn = end($fil) + 1;
    print $naeste_filnavn . "<br>";
        if (move_uploaded_file($_FILES['filnavn']['tmp_name'], $uploadfile)) {
        rename($tempuploaddir . $_FILES['filnavn']['name'],$uploaddir . $naeste_filnavn . ".jpg");
        StartMySQL;
        $sql = "INSERT INTO billeder (medlem_id, fil, tekst) VALUES ($medlem_id, $naeste_filnavn, $_POST[tekst])";
        mysql_query($sql);
    } else {
      print "Der er sket en fejl!";
    }
}

Er det noget, der kan bruges ??
Avatar billede greew Nybegynder
16. juni 2004 - 14:52 #2
Argh... forkert kode.. det var min test-kode, som ikke er fuldstændig.. Bare glem dem :)
Avatar billede matz Nybegynder
16. juni 2004 - 14:54 #3
Har du en anden kode som kan gøre det ? eller muligvis et sted hvor man kan downloade et gratis scripts?
Avatar billede greew Nybegynder
16. juni 2004 - 14:56 #4
Well... jeg fandt den her kode på nettet, men den skulle selvfølgelig rettes til.. Og den rigtige kode jeg brugte, bruger jeg ikke mere, så nu har jeg kun test-koden til at ligge og flyde...
Jeg prøver lige at rette den til, så den er brugbar.. jeg ved ikke lige hvor du skal finde en script på nettet
Avatar billede matz Nybegynder
16. juni 2004 - 14:59 #5
Okay tak fordi du retter det til så det vil fungere perfekt, jeg afventer dit resultat.
Avatar billede greew Nybegynder
16. juni 2004 - 15:10 #6
Ok.. så tror jeg, at jeg fandt det :)

upload.php:

<?
    // Uploade billeder
    $submit_billede = $_POST['submit_billede'];
    if ($submit_billede) {
        $tempuploaddir = 'billeder/temp/';
        $uploaddir = 'billeder/';
        $uploadfile = $tempuploaddir . $_FILES['filnavn']['name'];

        StartMySQL();       
        $foresp = mysql_query("SELECT fil FROM billeder");
        while ($data = mysql_fetch_array($foresp)) {
            $fil = array($data[fil]);
        }
        $naeste_filnavn = end($fil) + 1;

        if (move_uploaded_file($_FILES['filnavn']['tmp_name'], $uploadfile)) {
            rename($tempuploaddir . $_FILES['filnavn']['name'],$uploaddir . $naeste_filnavn . ".jpg");
            StartMySQL();
            $sql = "INSERT INTO billeder (navn, fil, tekst) VALUES ($_POST[navn], $naeste_filnavn, $_POST[tekst])";
            mysql_query($sql) or die(mysql_error());
        } else {
          print "Der er sket en fejl!";
        }
    }
?>


<form enctype="multipart/form-data" action="upload.php" method="POST">
<table>
<tr> <td> Upload dette billede: </td> <td> <input name="filnavn" type="file"> </td> </tr>
<tr> <td> Dit navn: </td> <td> <input type="text" name="navn"> </td> </tr>
<tr> <td> Skriv en kommentar til billedet: </td> <td> <input type="text" name="tekst"> </td> </tr>
<tr> <td> Send billedet: </td> <td> <input type="submit" name="submit_billede" value="Send billede"> </td> </tr>
</table>
</form>


Min database ser sådan her ud:

CREATE TABLE `billeder` (
  `id` int(3) NOT NULL auto_increment,
  `navn` char(40) NOT NULL default '',
  `fil` int(3) NOT NULL default '0',
  `tekst` char(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM ;


Husk at mapperne billeder og billeder/temp skal chmod'es 777
Avatar billede matz Nybegynder
16. juni 2004 - 15:11 #7
Har du også en "billeder.php" som viser det der bliver uploadet??
Avatar billede greew Nybegynder
16. juni 2004 - 15:12 #8
Ja.. øjeblik..
Avatar billede matz Nybegynder
16. juni 2004 - 15:14 #9
helt iorden.
Avatar billede matz Nybegynder
16. juni 2004 - 15:15 #10
Hvad mener du med "chmod'es 777" Jeg er lidt ny til php da jeg er inde i asp.
Avatar billede greew Nybegynder
16. juni 2004 - 15:16 #11
Den ser sådan her ud:

billeder.php:

<p class=overskrift>Billeder</p>

<p>Her er der så plads til billeder fra de sidste år.!<br>
Hvis du har nogle billeder, du mener, skal op på siden, så <a href="index.php?p=upload.php">upload billederne</a>!!</p>

<table class=billeder border=1>
<?
    $order = "id";
    StartMySQL();
    $sql = "SELECT * FROM billeder";
    $foresp = mysql_query($sql);
    while ($data = mysql_fetch_array($foresp)) {
        $size = getimagesize("billeder/$data[fil].jpg");
        $height = $size[1] + 20;
        $width = $size[0];
        print "<tr> <td valign=bottom> <a href=\"#\" border=\"0\" onclick=\"self.window.open('aaben_billeder.php?fil=$data[fil]','Billeder','left=100,top=100,height=$height,width=$width,resizable=no,status=no,toolbar=no,menubar=no,location=no')\"> <img src=\"billeder/$data[fil].jpg\" width=\"250\" border=\"0\"> </a> <br>\n";
        print $data[tekst];
        print "Upladet af: $data[navn]";
        print "</td> </tr>";
    }
?>   
</table>
Avatar billede greew Nybegynder
16. juni 2004 - 15:17 #12
Rettighederne til mapperne skal ændres, så upload-processen kan få lov til at uploade til mapperne.. Jeg kender heller ikke selv så meget til chmod, men er der andre der kan forklare det ??
Avatar billede matz Nybegynder
16. juni 2004 - 15:19 #13
Okay rettigheder klare jeg bare selv - lige en sidste ting har du testet scriptet selv før du skrev det her?

Ellers vil jeg sige tak for hjælpen.
Avatar billede greew Nybegynder
16. juni 2004 - 15:20 #14
Det sidste script er det, jeg normalt kører på min hjemmeside... Upload scriptet har jeg ikke testet.. Men jeg kan lige prøve... Gi mig lige et par minutter..
Avatar billede matz Nybegynder
16. juni 2004 - 15:21 #15
helt iorden.
Avatar billede greew Nybegynder
16. juni 2004 - 15:24 #16
By the way...

Når der står StartMySQL(); skal du lige skifte det ud med f.eks.
$database = mysql_connect("serveren","brugernavn","kodeord");
mysql_select_db("databasenavn",$database);
Avatar billede xyborx Nybegynder
16. juni 2004 - 15:27 #17
chmod:

De tre cifre har henholdsvis at gøre med user, group og others. Hvert tal angiver hvilke permissions hver af de tre har.

1=execute (bruges også for at få adgang til dirs)
2=write
4=read

De kan kombineres, så fx 6=read+write og 7 er det hele.

Hvis man fx vil give sig selv fuld adgang til at læse og skrive en fil, mens gruppen kun må læse den, og andre helt skal forhindres i at gøre noget med den, så vil man chmod'e 640. Hvis det var en mappe eller et eksekverbart program, skal man huske at tilføje execute-flaget, så det bliver til 750.

Hvis man vil give alle adgang til at gøre alt hvad de har lyst til, kan man bruge 777, men det er selvsagt meet usikkert, især på en server med mange brugere..
Avatar billede greew Nybegynder
16. juni 2004 - 15:35 #18
Ok.. så skulle det virke nu her:

billeder.php:

<p class=overskrift>Billeder</p>

<p>Her er der så plads til billeder fra de sidste år.!<br>
Hvis du har nogle billeder, du mener, skal op på siden, så <a href="upload.php">upload billederne</a>!!</p>

<table class=billeder border=1>
<?
    $order = "id";
          $database = mysql_connect("mydb1.surftown.dk","Greew_nboegen","iktylmbwcid");
                mysql_select_db("Greew_navneboegen",$database);       
    $sql = "SELECT * FROM billeder";
    $foresp = mysql_query($sql);
    while ($data = mysql_fetch_array($foresp)) {
        $size = getimagesize("billeder/$data[fil].jpg");
        $height = $size[1] + 20;
        $width = $size[0];
        print "<tr> <td valign=bottom> <a href=\"#\" border=\"0\" onclick=\"self.window.open('aaben_billeder.php?fil=$data[fil]','Billeder','left=100,top=100,height=$height,width=$width,resizable=no,status=no,toolbar=no,menubar=no,location=no')\"> <img src=\"billeder/$data[fil].jpg\" width=\"250\" border=\"0\"> </a> <br>\n";
        print "$data[tekst] <br>";
        print "Upladet af: $data[navn]";
        print "</td> </tr>";
    }
?>   
</table>

upload.php:

<?
    // Uploade billeder
    $submit_billede = $_POST['submit_billede'];
    if ($submit_billede) {
        $tempuploaddir = 'billeder/temp/';
        $uploaddir = 'billeder/';
        $uploadfile = $tempuploaddir . $_FILES['filnavn']['name'];

                $database = mysql_connect("SERVER","USER","PASS");
                            mysql_select_db("DATABASE",$database);     
        $foresp = mysql_query("SELECT fil FROM billeder");
        while ($data = mysql_fetch_array($foresp)) {
            $fil = array($data[fil]);
        }
        $naeste_filnavn = end($fil) + 1;

        if (move_uploaded_file($_FILES['filnavn']['tmp_name'], $uploadfile)) {
            rename($tempuploaddir . $_FILES['filnavn']['name'],$uploaddir . $naeste_filnavn . ".jpg");
                $database = mysql_connect("SERVER","USER","PASS");
                            mysql_select_db("DATABASE",$database);
            $sql = "INSERT INTO billeder (navn, fil, tekst) VALUES ('$_POST[navn]', $naeste_filnavn, '$_POST[tekst]')";
            mysql_query($sql) or die(mysql_error());
        } else {
          print "Der er sket en fejl!";
        }
    }
?>


<form enctype="multipart/form-data" action="upload.php" method="POST">
<table>
<tr> <td> Upload dette billede: </td> <td> <input name="filnavn" type="file"> </td> </tr>
<tr> <td> Dit navn: </td> <td> <input type="text" name="navn"> </td> </tr>
<tr> <td> Skriv en kommentar til billedet: </td> <td> <input type="text" name="tekst"> </td> </tr>
<tr> <td> Send billedet: </td> <td> <input type="submit" name="submit_billede" value="Send billede"> </td> </tr>
</table>
</form>

Sådan!!

Du kan se det i aktion på http://greew.dk/eksperten/510457/billeder.php
Avatar billede matz Nybegynder
16. juni 2004 - 15:37 #19
Perfekt, tak skal du have.
Avatar billede greew Nybegynder
16. juni 2004 - 15:38 #20
For en god ordens skyld får du også lige

aaben_billeder.php:

<?
    $fil = $_GET[fil];
    $size = getimagesize("billeder/" . $fil . ".jpg");
?>
<html>
<head>
<META NAME="Generator" CONTENT="Stone's WebWriter 3.5">
<link rel="stylesheet" type="text/css" href="css.css">
</head>
<body style="margin-top:0" style="margin-left:0">

<table border=0 cellpadding=0 cellspacing=0 width=100%>
<tr> <td align="center">
<img src="billeder/<? print $fil; ?>.jpg" <? print $size[3]; ?>><br>
<a href="#" onclick="self.close()">Luk vinduet</a><br>


</td>
</tr>
</table>

</BODY>
</HTML>
Avatar billede matz Nybegynder
16. juni 2004 - 15:59 #21
Jeg har brug for lidt hjælp, jeg kan sagtens afsætte flere points til dig, men jeg får hele tiden fejl prøv at se her: http://matz.users.whitehat.dk/upload.php
Avatar billede greew Nybegynder
16. juni 2004 - 18:50 #22
Jeg kan godt se, at billederne ikke bliver uploadet, men der kommer ingen fejlmeddelelse.. Så er det svært at fejlrette :)

Du har ændret SERVER, USER og PASS til dine egne info, ikke ??
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