webForumDet fria alternativet

Ladda upp filer mot databas

PHP

2 svar · 441 visningar · startad av Toolband

Medlem sedan apr. 20062 inlägg
Frågan#1

Hej!
Jag är nybörjare på php o mysql(sql) och jag sitter här med en fin bok om hur man enkelt kan ladda upp filer till sin databas. Jag har gjort som det står(tror jag) men inget visas på sidan. Jag använder mig av apace2triad.

Filen består av en upload.php och en download.php
Jag kastar in all kod här som tillhör upload.php Nån kanske kan säga vad som är fel.

<html>

<head>

</head>

<body>

<?php

if (isset($_FILES['fildata'])) {

if(is_uploaded_file($\_FILES\['fildata'\]\['tmp_name'\])) {
	if(empty($\_POST\['besk'\]))
	   $besk = "Ingen beskrivning";
	else
	   $besk = $\_POST\['besk'\];
	$dbh = @mysql_connect("localhost","root","hannagranne")
		 or die("kunde inte ansluta mot databasen!");
	mysql_select_db("test");
	$filnamn = $\_FILES\['fildata'\]\['name'\];
	$filtyp = $\_FILES\['fildata'\]\['type'\];
	$filstorlek = $\_FILES\['fildata'\]\['size'\];

	$fildata = addslashes(fread(fopen($\_FILES\['fildata'\]\['tmp_name'\],"rb"),filesize($\_FILES\['fildata'\]\['tmp_name'\])));
	$sql = "INSERT INTO upload(filnamn,filtyp,filstorlek,fildata,besk)";
	$sql. = "VALUES ('$filnamn','$filtyp','$filstorlek','$fildata','$besk')";
	mysql_query($sql);

	$fil_id = mysql_insert_id();
	echo "\<h3\>Filen fick ID $fil_id\</h3\>\<br\>";
	mysql_close();
}

}

	echo "\<h2\>Filer i databasen\>\</h2\>\\n";

	$dbh = @mysql_connect("localhost","root","hannagranne")
		 or die("kunde inte ansluta mot databasen!");
	mysql_select_db("test");
	$sql = "SELECT fid,filnamn,filtyp,filstorlek,besk FROM upload";
	$result = mysql_query($sql);
	echo "\<table border=0\>\\n";
	echo "\<tr bgcolor=\\"#AAAAAA\\"\>\<td\>Filnamn\</td\>\<td\>Filtyp\</td\>\<td\>Filstorlek\</td\>\<td\>Beskrivning\</td\>\</tr\>\\n";
	while($rad=mysql_fetch_array($result)) {
	echo "\<tr bgcolor=\\"#EEEEEE\\"\>\\n";
	echo "\<td\>\<a href=\\"download.php?fid=$rad\[0\]\\"\>$rad\[1\]\</a\>\</td\>";
	echo "\<td\>$rad\[2\]\</td\>\<td\>$rad\[3\]\</td\>\<td\>$rad\[4\]\</td\>\\n";
	echo "\</tr\>\\n";
}

	echo "\</table\>\\n";
	mysql_close();

	?\>
	\<h2\>Uppladning av fil mot Mysql databas\</h2\>
	\<form action="\<?=$PHP_SELF?\>" method="post" enctype="multipart/form-data"\>
	Fil att ladda upp:\<br\>
	\<input type="file" name="fildata" size="40"\>\<br\>
	Beskrivning av filen:\<br\>
	\<input type="text" name="besk" size="40"\>\<br\>
	\<input type="reset" value="Återställ"\>
	\<input type="submit" value="Ladda Upp Fil"\>
	\</form\>
	\</body\>
	\</html\>		

Hoppas nån kan hjälpa mig
Tack på förhand.

Medlem sedan dec. 200539 inlägg
#2

absout inget visas eller?

Medlem sedan jan. 2002341 inlägg
#3

Tips: lägg koden inom [ PHP ]...[ /PHP ] taggar så blir det mycket mera lättläst (utan mellanslagen i [ ] givetvis).

Har du provat att skriva ut INSERT satsen, och kollat så att den faktiskt körs korrekt?

265 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)