Avatar billede angelenglen Nybegynder
26. oktober 2002 - 23:23 Der er 11 kommentarer og
2 løsninger

Upload billed, tilføg til db og vis 5 nyeste.

Jeg har brug for et script der gør følgende:

Via en simpel side (f.eks upload.php) vælger man billedet fra sin harddisk, trykker på submit.

Billedet bliver så uploadet til en mappe kaldet f.eks "images"

Derefter bliver filnavnet (med store/små bogstaver) tilføget til en mySql database. (naturligvis oprettes også en autoincrement id)


En anden side (f.eks show.php) viser de 5 nyeste uploadede billeder i et table.
-skal dog kun vise billeder af typen *.jpg eller *.gif - skal f.eks ignorere *.avi og *.mpg
-Det sidste med kun at vise billeder er ikke strengt nødvendigt... ville bare være rart, men hvis det er et problem, så bare lad det være...
Avatar billede ztyxx Nybegynder
26. oktober 2002 - 23:33 #1
prøv at kigge på www.hotscripts.com, der burde du kunne finde noget
Avatar billede topsite Nybegynder
27. oktober 2002 - 00:33 #2
Ok :) Lad os gå igang :D

---- DENNE FIL KAN DU KALDE: UPLOAD_BILLEDE.php

<html>
<head>
<title>Billeder på server</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<font size="1" face="Verdana">
<?
if($uploadedfile) {
  if(!copy($uploadedfile,"billeder/$uploadedfile_name")) {
echo "Der opstod en fejl, luk venligst vinduet og prøv igen.. :/";
  }
  else {
    echo "Filen er uploadet - $uploadedfile_name.<br>";
    echo("<a href=\"vis-billeder.php\">Tilbage...</a> ");
   
        // HER KAN DU INCLUDE DIN DATABASE, ELLER SELV SKRIVE DIN CONNECTION
    include("Connections/mysql.php");
    mysql_select_db($database, $connection);

    mysql_query("insert into TABELSQL (sti) values ('$uploadedfile_name')");

   
  }
}
?>
</font><font face="Verdana">
<p><font size="1">Billede der blev lagt op p&aring; serveren:</font></p>
<p><font size="1"><img src="<?echo("$uploadedfile_name");?>"></font></p>
</font></body>
</html>


---- DENNE FIL KAN DU KALDE: UPLOAD.php

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<font size="1" face="Verdana"><strong>Inds&aelig;t et billede</strong><br>
</font>
<form method="post" enctype="multipart/form-data" action="UPLOAD_BILLEDE.php">
  <font size="1" face="Verdana">
  <input type="file" name="uploadedfile" size="30">
  <input type="submit" value="L&aelig;g fil op p&aring; serveren">
  </font>
</form>
<p><br>
  <font size="1" face="Verdana"><strong><font size="2"><a href="vis-billeder.php">Jeg
  har allerede uploadet et billede jeg vil bruge.</a><br>
  </font><br>
  </strong></font></p>
</body>

</html>
&nbsp; </p>
</body>
</html>



---- VIS BILLLEDER: vis-billeder.php

<html>
<head>
<title>viser billeder</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<strong><font size="1" face="Verdana">Klik p&aring; det billede du vil inds&aelig;tte:</font></strong>
<br>
<?php

    include("database.php");
    mysql_select_db($database, $connection);

  $result = mysql_query("select * from TABELSQL");
    while($row = mysql_fetch_array($result)) {
      print "<a href=\"admin-set-picture-html.php?url=$row[sti]\"><img src=\"../billeder/$row[sti]\" alt=\"Admin width=\"100\" height=\"100\" border= \"0\" - Billede\"></a>  ";
    }
?>
</body>
</html>



Sådan PRØV ENGANG :D Desuden laver du lige i din SQL en tabel der hedder TABELSQL og deri en et felt der hedder sti

virker perfekt :D

Pyyyh et arbejde :D
Avatar billede alrua Nybegynder
27. oktober 2002 - 06:07 #3
Du kan derudover lave checks ved upload, så den kun kan uploade nogle bestemte filtyper og filstørrelser.

Forøvrigt topsite: Du skal nok bruge move_uploaded_file() i stedet for copy() - bare for sikkerhedens skyld ;)

Desuden kan du, hvis du skulle få lyst, lave et GDlib script der resizer billedet så det kun fylder en max-størrelse. Jeg har en funktion liggende der kan det, hvis det er :)

-Alrua
Avatar billede angelenglen Nybegynder
27. oktober 2002 - 13:44 #4
okay Topsite - det ser ret godt ud.

Jeg har måttet redigere lidt i filerne, så de ser sådan-her ud:
(databasen hedder nu 'tg337-images' - og feltet hedder 'path')

---upload.php---:
<html>
<head>
<title>Upload.php</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<font size="1" face="Verdana"><strong>Inds&aelig;t et billede</strong><br>
</font>
<form method="post" enctype="multipart/form-data" action="upload_billede.php">
  <font size="1" face="Verdana">
  <input type="file" name="uploadedfile" size="30">
  <input type="submit" value="L&aelig;g fil op p&aring; serveren">
  </font>
</form>
<p><br>
  <font size="1" face="Verdana"><strong><font size="2"><a href="vis-billeder.php">Jeg
  har allerede uploadet et billede jeg vil bruge.</a><br>
  </font><br>
  </strong></font></p>
</body>

</html>
&nbsp; </p>
</body>
</html>

---upload_billede.php---:
<html>
<head>
<title>Upload Billeder til server</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<font size="1" face="Verdana">
<?
if($uploadedfile) {
  if(!copy($uploadedfile,"billeder/$uploadedfile_name")) {
echo "Der opstod en fejl, luk venligst vinduet og prøv igen.. :/";
  }
  else {
    echo "Filen er uploadet - $uploadedfile_name.<br>";
    echo("<a href=\"vis-billeder.php\">Tilbage...</a> ");
   
        // HER KAN DU INCLUDE DIN DATABASE, ELLER SELV SKRIVE DIN CONNECTION
    include("database.php");

    mysql_query("insert into tg337-images (path) values ('$uploadedfile_name')");

   
  }
}
?>
</font><font face="Verdana">
<p><font size="1">Billede der blev lagt op p&aring; serveren:</font></p>
<p><font size="1"><img src="billeder/<?echo("$uploadedfile_name");?>"></font></p>
</font></body>
</html>



---vis-billeder.php---:
<html>
<head>
<title>viser billeder</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<strong><font size="1" face="Verdana">Klik p&aring; det billede du vil inds&aelig;tte:</font></strong>
<br>
<?php

    include("database.php");

  $result = mysql_query("select * from tg337-images");
    while($row = mysql_fetch_array($result)) {
      print "<a href='admin-set-picture-html.php?url=$row[path]'><img src='../billeder/$row[path]' alt='Admin' width=100 height=100 border=0> - Billede'></a>";
    }
?>
</body>
</html>



-problemet er at jeg får følgende output af 'vis-billeder.php':
Klik på det billede du vil indsætte:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/www.psycotics.dk/www/tg337/upload/vis-billeder.php on line 15

-jeg er heller ikke sikker på hvad 'admin-set-picture-html.php' skulle gøre, samt hvad koden til den fil skulle være...
-jeg tror problemet ligger i $result - hvor kommer den fra?
Avatar billede angelenglen Nybegynder
27. oktober 2002 - 13:47 #5
forresten:

---database.php---:
<?
mysql_connect("serverens-navn.dk","kodeord","password");
mysql_select_db("database_navn");
?>
Avatar billede angelenglen Nybegynder
27. oktober 2002 - 13:57 #6
hmm det ser heller ikke ud til at der bliver tilføget noget til databasen.. men ok, det er vel det siden med fejl i skulle gøre?
Avatar billede topsite Nybegynder
27. oktober 2002 - 14:20 #7
<?
mysql_connect("serverens-navn.dk","kodeord","password");
mysql_select_db("database_navn");
?>
Skal vel være ,"username","password" :)

Det virker her, nogle gamle MySQL databaser har problemer med '-' bindestreg i navne, prøv at lav en ny uden bindestreg
det virker her, dog skal du nok lige fjerne :

$row[path]
Avatar billede angelenglen Nybegynder
27. oktober 2002 - 16:45 #8
ok, har bikset lidt med koden, og de 4 filer virker som de skal.
Eneste jeg ikke forstår er hvad formålet med vis-billeder.php er..
Så vidt jeg kan se mig ud af, mangler der en "admin-set-picture-html.php"
-hvad er det meningen at den skal gøre?
Avatar billede angelenglen Nybegynder
27. oktober 2002 - 16:47 #9
-filerne ser forresten sådan her ud nu:
---database.php---:
<?
mysql_connect("server.dk","username","password");
mysql_select_db("database_name");
?>


---upload.php---:
<html>
<head>
<title>Upload.php</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<font size="1" face="Verdana"><strong>Inds&aelig;t et billede</strong><br>
</font>
<form method="post" enctype="multipart/form-data" action="upload_billede.php">
  <font size="1" face="Verdana">
  <input type="file" name="uploadedfile" size="30">
  <input type="submit" value="L&aelig;g fil op p&aring; serveren">
  </font>
</form>
<p><br>
  <font size="1" face="Verdana"><strong><font size="2"><a href="vis-billeder.php">Jeg
  har allerede uploadet et billede jeg vil bruge.</a><br>
  </font><br>
  </strong></font></p>
</body>

</html>
&nbsp; </p>
</body>
</html>


---upload_billede.php---:
<html>
<head>
<title>Upload Billeder til server</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<font size="1" face="Verdana">
<?
if($uploadedfile) {
  if(!copy($uploadedfile,"billeder/$uploadedfile_name")) {
echo "Der opstod en fejl, luk venligst vinduet og prøv igen.. :/";
  }
  else {
    echo "Filen er uploadet - $uploadedfile_name.<br>";
    echo("<a href=\"vis-billeder.php\">Tilbage...</a> ");
   
        // HER KAN DU INCLUDE DIN DATABASE, ELLER SELV SKRIVE DIN CONNECTION
    include("database.php");

    mysql_query("insert into tg337_images (path) values ('$uploadedfile_name');") or die (mysql_error());

   
  }
}
?>
</font><font face="Verdana">
<p><font size="1">Billede der blev lagt op p&aring; serveren:</font></p>
<p><font size="1"><img src="billeder/<?echo("$uploadedfile_name");?>"></font></p>
</font></body>
</html>



---vis-billeder.php---:
<html>
<head>
<title>viser billeder</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<font size="1" face="Verdana">Click the image you wish to insert:</font>
<br>
<?

    include("database.php");

$select="SELECT * FROM tg337_images ORDER BY id ASC";
        $query = mysql_query($select);
        while ($list = mysql_fetch_object($query)) {
?>
<a href='admin-set-picture-html.php?url=<? echo "$list->path"; ?>'> ID: <? echo "$list->id"; ?><img src='billeder/<? echo "$list->path"; ?>' alt='Admin' width=120 height=90 border=0></a><br>
<? } ?>
</body>
</html>
Avatar billede angelenglen Nybegynder
27. oktober 2002 - 17:15 #10
ok, jeg lavede selv følgende fil, som viser de sidste 5 uploadede billeder:

---top5.php---:
<head>
<title>Latest Images Uploaded</title>
</head>
<body color: #999999">
<?
include("database.php");

$select="SELECT * FROM tg337_images ORDER BY id DESC LIMIT 5";
$query = @mysql_query($select);
while ($list = mysql_fetch_object($query)) {
?>
<a href="billeder/<? echo "$list->path"; ?>"><img src="billeder/<? echo "$list->path"; ?>" width=120 height=90 alt="Click to view Full-Size"></a><br>

<? } ?>


Eftersom det ikke var ret svært, og det primært var det at få filerne uploadet og samtidig smidt ind i databasen, giver jeg dig 80% af de 200 points.

Hvis du mener du skulle have haft mere, så bare sig til, så finder vi ud af noget.
Avatar billede topsite Nybegynder
27. oktober 2002 - 17:53 #11
Kanon :D

Håber det hjalp lidt :D
Avatar billede angelenglen Nybegynder
27. oktober 2002 - 17:54 #12
det hjalp en hel god del ;)

tak for hjælpen!
Avatar billede allandk Nybegynder
16. april 2007 - 00:01 #13
Spændende... Hvordan ser en tabel ud til disse sider?
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