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äret skickats?
if(isset($_FILES['userfile']))
{
// mappen dä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åste ange en fil som du vill ladda upp.<br><a href="javascript:history.back()">Tillbaka</a>');
// kolla storleken på filen
if($_FILES['userfile']['size'] > $maxsize)
die('Den största tillåtna filstorleken är '.round($maxsize / 1024).' kB.<br><a href="javascript:history.back()">Tillbaka</a>');
//kollar så att det inte är en index fil
if ($_FILES['userfile']['name']=="index.html") {
die('Detta filnamn är ej giltigt!<br><a href="javascript:history.back()">Tillbaka</a>');
}
//kollar så att det inte är en index fil
if ($_FILES['userfile']['name']=="index.htm") {
die('Detta filnamn ä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å länken fö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äret
$sql = "SELECT value FROM various WHERE name = 'uploadsize'";
$result = mysql_query($sql) or die("SQL: $sql <br>".mysql_error());
echo 'Vä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";
}
?>