Avatar billede sporgejorgenk Nybegynder
12. april 2008 - 14:06 Der er 19 kommentarer og
2 løsninger

PhP upload script rettelser i det

Hey her har, jeg et upload script til billeder.
Men det skal være et fil system.
hvor man kan uploade diverse filer (Zip,Rar)
?
______________________________________________________

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<style type="text/css">
body,html {
font:8pt verdana;
}
a:link {
color:black;
text-decoration: none;
}
a:visited {
color:black;
text-decoration: none;
}
a:hover {
color:gray;
text-decoration: none;
}
</style>
</head>
<body>
<h2>Upload</h2>
<?php
if($_GET[mode] == "upload" AND $bruger[profilbillede] == ""){
        $billedenavn = strtolower($_FILES[billede][name]);
        $billedenavn = str_replace(' ','',$billedenavn);
        $billedenavn = str_replace('æ','ae',$billedenavn);
        $billedenavn = str_replace('ø','oe',$billedenavn);
        $billedenavn = str_replace('å','aa',$billedenavn);
            $size = $_FILES["billede"]["size"];

        $flyt = "billeder/".$billedenavn;
        if (file_exists($flyt))
        {
        echo "<b><i>$flyt</i> findes allerede...</b>";
        }
        elseif($_FILES["billede"]["type"] != "image/gif" && $_FILES["billede"]["type"] != "image/pjpeg" && $_FILES["billede"]["type"] != "image/x-png")
        {
        echo "<b>Billedet skal være af typen *.gif, *.jpeg, *.jpg eller *.png...</b>";
        }
        elseif($size > 100000)
        {
        echo "<b>Billedet er over 100kb...</b>";
        }
        else
        {
            move_uploaded_file($_FILES[billede][tmp_name], $flyt);
echo "<b>Billedet er blevet uploadet</b><br /><img src=\"$flyt\" border=\"0\" /><br /><b>Link:</b><a href=\"http://domæne.dk/$flyt\">http://domæne.dk/$flyt</a>";
}
}
?>
<form method="post" action="?mode=upload" enctype="multipart/form-data">
<b>Billede:</b><br />
<input type="file" style="width:500px;" name="billede"><br />
<input type="submit" value="Upload billede" style="width:250px;">
</form><b>Billedet skal være af typen: *.gif, *.jpeg, *.jpg eller *.png og må max fylde 100kb.</b>
<br /><br />
<?php
$nr = "0";
if ($handle = opendir('billeder/')) {
  while (false !== ($file = readdir($handle))) {
$nr++;
      if ($file != "." && $file != ".." && $file != "Thumbs.db") {
?>
<b><?php print $nr; ?>.</b> <a href="billeder/<?php print $file; ?>"><?php print $file; ?></a><br />
<?php
      }
  }
  closedir($handle);
}
?>
</body>
</html>
Avatar billede w13 Novice
12. april 2008 - 14:12 #1
Prøv med:
---------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title></title>
<style type="text/css">
body,html {
font:8pt verdana;
}
a:link {
color:black;
text-decoration: none;
}
a:visited {
color:black;
text-decoration: none;
}
a:hover {
color:gray;
text-decoration: none;
}
</style>
</head>
<body>
<h2>Upload</h2>
<?php
if($_GET[mode] == "upload" AND $bruger[profilbillede] == ""){
        $billedenavn = strtolower($_FILES[billede][name]);
        $billedenavn = str_replace(' ','',$billedenavn);
        $billedenavn = str_replace('æ','ae',$billedenavn);
        $billedenavn = str_replace('ø','oe',$billedenavn);
        $billedenavn = str_replace('å','aa',$billedenavn);
        $size = $_FILES["billede"]["size"];

        $flyt = "billeder/".$billedenavn;
        if (file_exists($flyt))
        {
        echo "<b><i>$flyt</i> findes allerede...</b>";
        }
        elseif($size > 100000)
        {
        echo "<b>Billedet er over 100kb...</b>";
        }
        else
        {
            move_uploaded_file($_FILES[billede][tmp_name], $flyt);
echo "<b>Filen er blevet uploadet</b><br /><b>Link:</b><a href=\"http://domæne.dk/$flyt\">http://domæne.dk/$flyt</a>";
}
}
?>
<form method="post" action="?mode=upload" enctype="multipart/form-data">
<b>Billede:</b><br />
<input type="file" style="width:500px;" name="billede"><br />
<input type="submit" value="Upload billede" style="width:250px;">
</form><b>Filen må max fylde 100kb.</b>
<br /><br />
<?php
$nr = "0";
if ($handle = opendir('billeder/')) {
  while (false !== ($file = readdir($handle))) {
$nr++;
      if ($file != "." && $file != ".." && $file != "Thumbs.db") {
?>
<b><?php print $nr; ?>.</b> <a href="billeder/<?php print $file; ?>"><?php print $file; ?></a><br />
<?php
      }
  }
  closedir($handle);
}
?>
</body>
</html>
Avatar billede sporgejorgenk Nybegynder
12. april 2008 - 14:17 #2
Hej kunne du skrive hvor du har ændret og hvad ?
Avatar billede w13 Novice
12. april 2008 - 14:33 #3
Jeg har fjernet:

        elseif($_FILES["billede"]["type"] != "image/gif" && $_FILES["billede"]["type"] != "image/pjpeg" && $_FILES["billede"]["type"] != "image/x-png")
        {
        echo "<b>Billedet skal være af typen *.gif, *.jpeg, *.jpg eller *.png...</b>";
        }
Avatar billede sporgejorgenk Nybegynder
12. april 2008 - 14:37 #4
okay :D men når jeg har uploadet det og linket kommer frem klikker jeg på det så kommer der: Access forbidden!  JEg har prøvet at ændre i egenskaber med kør skrivertilladelse og læs ?
Avatar billede w13 Novice
12. april 2008 - 14:42 #5
Det er vel en serverindstilling?

Du taler om dette link, ikke: <a href=\"http://domæne.dk/$flyt\">

Den linker jo til en mappe... Og det har du nok ikke lov til at se i.
Avatar billede w13 Novice
12. april 2008 - 14:43 #6
Nej, vent, jeg tager vist fejl. Hvad står der i adresselinjen, når du ser "Access forbidden!" ?
Avatar billede w13 Novice
12. april 2008 - 14:46 #7
Du skal selvfølgelig også rette:
        $flyt = "billeder/".$billedenavn;
så den ikke kigger i mappen "billeder", hvis dine filer ikke bliver upload der..
Avatar billede sporgejorgenk Nybegynder
12. april 2008 - 14:59 #8
Hej de bliver uploadet der men der  står: 
Access forbidden!
You don't have permission to access the requested object. It is either read-protected or not readable by the server.

If you think this is a server error, please contact the webmaster
Avatar billede w13 Novice
12. april 2008 - 15:09 #9
Og hvad står der i adresselinjen?
Avatar billede sporgejorgenk Nybegynder
12. april 2008 - 15:16 #10
F.eks. http://wowsite.ooz.dk/billeder/images.gif
Som jeg har uploadet
Avatar billede w13 Novice
12. april 2008 - 15:19 #11
Så ligger billedet vel ikke der.
Avatar billede sporgejorgenk Nybegynder
12. april 2008 - 15:20 #12
jo men har fundet ud af at det som jeg uploader ikke er 677 hvordan gøør man så det er standarten ?
Avatar billede w13 Novice
12. april 2008 - 15:20 #13
677?
Avatar billede sporgejorgenk Nybegynder
12. april 2008 - 15:27 #14
Ja når jeg går ind på min FTP højre klikker ejg på en af filerne og egenskaber.
og trykker så der er hak i alle felterne også virker det ??
Avatar billede w13 Novice
12. april 2008 - 15:27 #15
Det kender jeg desværre intet til.
Avatar billede sporgejorgenk Nybegynder
12. april 2008 - 15:29 #16
OKay så noget helt andet ved du hvordan man gør så amn SKAL sætte password på filen også når man trykker på linket skal man angive adgangskode ?
Avatar billede w13 Novice
12. april 2008 - 15:30 #17
Nej, desværre.
Avatar billede w13 Novice
12. april 2008 - 15:31 #18
Det kan være, det skal gøres i .htaccess, hvis det kan lade sig gøre. Ellers skal du høre din hoster, om det er muligt at gøre på serveren.
Avatar billede sporgejorgenk Nybegynder
12. april 2008 - 15:31 #19
Okay så er det et halvt svar så får du 50 Point for din gode hjælp :D
Avatar billede w13 Novice
12. april 2008 - 15:35 #20
Jeg takker for pointene. =)
Avatar billede sporgejorgenk Nybegynder
12. april 2008 - 15:36 #21
Np :D
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