webForumDet fria alternativet

Hjälp med uppladdning script

0 svar · 246 visningar · startad av smilegubben

smilegubbenMedlem sedan sep. 20052 inlägg
#1

Hej!
Jag undrar om någon kan hjälpa mig att sätta ihop en sida där man kan ladda upp filer så att man ska kunna ändra radera dem via en databas så uppladdningen måste gå genom en mysql databas på något sätt, har ingen aning om hur så det är det jag behöver hjälp med.
Jag har nu en upload som fungerar så att den laddar upp till en speciell mapp $upload_dir = 'uploaded/'. $user .'/'; som utgår från användarens namn och lägger filerna i den men då kan ju alla komma åt dem genom att gå till uploaded/username i adressfältet på webläsaren plus att man inte kan radera filer som det är nu från sin användare.. så därför tänkte jag att om man lägger in dem i en databas så kan man ju göra en funktion som bara hämtar filerna med användarens id(gör så att alla inte kommer åt dem) plus att man kan göra en radera knapp så att man kan ta bort de filer man inte vill ha kvar längre....
Det jag vill ha hjälp med är helt enkelt det som laddar upp filerna till databasen, vore väldigt snällt om någon tog sig tid att göra en sådan funktion åt mig. Man ska kunna ladda upp olika filtyper som t.ex. bilder, textdokument, powerpoint presentationer m.m. så att ni inte utgår från att det bara gäller bilder...
Jag lägger med min gamla funktion här i fall att den är till någon hjälp:

<?php

// har formul&auml;ret skickats?
if(isset($_FILES['userfile']))
{
  // mappen d&auml;r filerna ska hamna
  $upload_dir = 'uploaded/'. $user .'/';
  // den största tillåtna storleken.
  $sql = "SELECT value FROM various WHERE name = 'uploadsize'";
  $result = mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
  $maxsize = 1024 * mysql_result($result, 0, 'value');  
  
  // kolla om en fil har blivit angedd
  if(empty($_FILES['userfile']['name']))
    die('Du m&aring;ste ange en fil som du vill ladda upp.<br><a href="javascript:history.back()">Tillbaka</a>');
  
  // kolla storleken p&aring; filen
  if($_FILES['userfile']['size'] > $maxsize)
    die('Den st&ouml;rsta till&aring;tna filstorleken &auml;r '.round($maxsize / 1024).' kB.<br><a href="javascript:history.back()">Tillbaka</a>');

  //kollar s&aring; att det inte &auml;r en index fil
if ($_FILES['userfile']['name']=="index.html") { 
   die('Detta filnamn &auml;r ej giltigt!<br><a href="javascript:history.back()">Tillbaka</a>'); 
}

  //kollar s&aring; att det inte &auml;r en index fil
if ($_FILES['userfile']['name']=="index.htm") { 
   die('Detta filnamn &auml;r ej giltigt!<br><a href="javascript:history.back()">Tillbaka</a>'); 
}

 $blacklist = array('php', 'asp');
 
if( preg_match('/\.('. implode('|', $blacklist) .')$/i', $_FILES['userfile']['name']) ) {
  die('Följande filtyper är inte tillåtna: '. implode(', ', $blacklist));
}
  
  // flytta filen
  if(is_uploaded_file($_FILES['userfile']['tmp_name']))
    move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_dir.$_FILES['userfile']['name']);
  // skriv ut ett meddelande
  echo "Filen ".$_FILES['userfile']['name']." laddades upp utan problem!<br>Klicka p&aring; l&auml;nken f&ouml;r att komma till din uppladdade fil.<br>";
  $adress = "upload/uploaded/$user/" . $_FILES['userfile']['name'];
  echo '<a href="'.$adress.'" target="_blank">'.$adress.'</a><br><br>';
}
else
{
  // skriv ut formul&auml;ret
  $sql = "SELECT value FROM various WHERE name = 'uploadsize'";
  $result = mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
  echo 'V&auml;lj fil att ladda upp: <br> Max storleken per fil ligger på '.mysql_result($result, 0, 'value') / 1000 .' Mb<br><br>';
  echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"post\" enctype=\"multipart/form-data\"/>\n";
  echo "<input type=\"file\" name=\"userfile\"/><br/>\n";
  echo "<input type=\"submit\" value=\"Ladda upp filen\"/>\n";
  echo "</form>\n";
}

?>
136 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)