kanske missförstånd med filerna? jag ska alltså låta användarna ladda hem filerna, till sin dator...pdf document, word dokument, powerpoint, zip osv.. inte bilder.
Lista fil, länka till filen i databasen
27 svar · 788 visningar · startad av Tulork · sida 2 av 2
Frågan, av Tulork
nu är det jag som skriver igen :) har fått ordning på upload utav filer till databasen samt till specifik användare, nu ska jag lista filen/filerna beroende på vilken användare som är inloggad, så här långt har jag kommit <?php obstart(); sessionstart(); // Kolla om inloggad = sessionen satt if (!isset($SESSION['sessuser'])){ header("Location: index.php"); exit; } if (isset($GET[
Läs frågan i sin helhet →Ah, det är jag som fattar fel, är nog för att jag är trött och håller på med annat samtidigt.
Är det inte enklare att ladda upp filerna till en mapp och bara spara filnamnet i databasen? Sen skriva ut en länk som dom får klicka på för att läsa/ladda ner filen.
jo, men då måste jag ändra om hela upload samt download skriptet..vet faktiskt inte hur man gör för att ladda upp till en mapp :S kanske inte är så svårt..
<?php
ob_start();
session_start();
// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_userlevel']) || $_SESSION['sess_userlevel'] != "admin") {
// header("Location: index.php");
header("refresh: 5;url=konto.php");
// eller
echo "Du har inte behörighet till den här sidan";
exit;
}
?>
<?php
include "conn.php"; // Databasanslutningen
// Performing SQL query sh
$ID_ADD = $_GET['var'];
if (isset ($_GET['var'])){
$query = "SELECT * FROM $mem_table WHERE id =".$_GET['var']." ";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());
// Printing results in HTML
echo "<p>Du redigerar användaren:<p>";
//echo "$_SESSION['sess_userlevel'];";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "\t<tr>\n";
foreach ($line as $col_value) {
echo "\t\t<td>$col_value</td>\n";
}
echo "\t</tr>\n";
//echo "test $sess_userlevel";
}
echo "</table>\n";
// Free resultset
//mysql_free_result($result);
}
echo "<br>$ID_ADD";
if (isset($_FILES['uplfile'])) {
// Mappen där filerna ska hamna
$upload_dir = 'download/';
// De tillåtna filtyperna, separerade med komman, utan mellanrum
$filetypes = 'jpg,gif,png,doc,zip,ppt,txt,pdf';
// Den största tillåtna storleken (80 kB)
$maxsize = (1024*20000000);
// Kontrollera att det angavs en fil
if(empty($_FILES['uplfile']['name']))
die('Ingen fil har valts');
// Kontrollera storleken
if($_FILES['uplfile']['size'] > $maxsize)
die('Filen du valde är för stor. Maxstorleken är '.(string)($maxsize/1024).' KB.');
// Kontrollera filtypen
$types = explode(',', $filetypes);
$file = explode('.', $_FILES['uplfile']['name']);
$extension = $file[sizeof($file)-1];
if(!in_array(strtolower($extension), $types))
die('Du har en felaktig filtyp. Endast .jpg, .gif och .png är tillåtet!');
// Generera unikt filnamn
$bokstav = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6');
$thefile = $_FILES['uplfile']['name'];
while (file_exists($upload_dir.$thefile)) { $img = $bokstav[rand(0, count($bokstav)-1)].$thefile; }
// Flytta filen rätt
if (is_uploaded_file($_FILES['uplfile']['tmp_name']) && move_uploaded_file($_FILES['uplfile']['tmp_name'],$upload_dir.$thefile)) {
echo 'Filen laddades upp!';
//Min införning i databasen
$query = "INSERT INTO UserFiles (filename, RefID) "."VALUES ('$thefile', '$ID_ADD')";
mysql_query($query) or die ('gick inte att införa i databasen');
} else {
echo 'Ett fel uppstod och filen kunde inte laddas upp.';
/*
Uppladdningen misslyckades.
*/
}
}
else
{
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">
Fil: <input type="file" name="uplfile"><br>
<input type="submit" value="Ladda upp filen">
</form>
<?php
}
?>
</body>
</html>
<?php
echo "<br><a href=\"index.php?logout=\">Logga ut</a>\n<br><br>";
?>
<a href="admin.php">Tillbaka </a><br><br>
okej, så här ser den nya upload koden ut..nu laddar den till en mapp, lite mer säkerhet osv...den inför också in i databasen filens filnamn..men när jag ska ha in $ID_ADD vilket är ID numret på den användaren jag vill ska ha tillgång till denna fil (i download saken sen)..men den vill inte mata in innehållet i $ID_ADD..har kollat lite och vad jag kan se så innehåller $ID_ADD alltid det id nummer jag valde på sidan innan..
alltså jag blir knäpp, varför vill den inte föra in $_GET['var'] ??? statiska värden funkar ju... det funkar längre upp i koden..???
ingen som vet då alltså? :S
När du laddar upp filen så använder formuläret post och då skickar du ju inte med $ID_ADD.
Lägg in ett hidden-fält i formuläret med värdet på $ID_ADD så du får med det till andra sidan och lägg in det i databasen med $_POST['id_add']
Nä inte $ID_ADD, men $ID_ADD innehåller ju $_GET['var']; som kommer från andra sidan...varför skulle jag inte kunna använda det igen? precis som jag gjorde längre upp i koden?