L LOOlau Medlem sedan jan. 2004 99 inlägg Frågan 6 dec. 2005 20:52 #1 Hej...
Vill lagra en fil i en databas och sen självklart kunna presentera denna fil. Mp3, bild eller vad det nu är för fil.
Har sökt endel i forumet och på google men hittar inte de jag söker... Är kass på att söka.. Så om någon kundde förklara hur man gör eller ge mig en länk där det förklaras skule uppskattas..
Tacksam för hjälp..
L LOOlau Medlem sedan jan. 2004 99 inlägg Såhär långt har jag kommit iaf..
Får ut en array som innehåller lite information
Fattar doc inte riktigt hur ja ska få in filen i en databas..
Array ( [filename] => Array ( [name] => top-pice.png [type] => image/png [tmp_name] => /tmp/phpWjdau4 [error] => 0 => 944 ) )
<?
print_r($_POST[filename]);
echo "<br />";
print_r($_FILES);
echo "<form enctype='multipart/form-data' method='POST'>";
//echo "<form method='post'>";
echo "<input type='file' name='filename'>";
echo "<input type='submit' value='ladda upp fil'>";
echo "</form>";
?>
9 99nvbjed Medlem sedan nov. 2005 22 inlägg Det är rätt ovanligt att lagra filer i databaser. Skulle det inte funka att lagra en referens till filen istället? Alltså lagra bara sökvägen. Det är nog den vanliga varianten.
L LOOlau Medlem sedan jan. 2004 99 inlägg Filen som hammnar i databasen är 0 bytes. Nån som vet vad felet är?
Den går in i if sattsen "if (file_exists($_FILES[filename][tmp_name]))".
<?
$database = "databas";
$login = "root";
$password= "passerord";
$hostname = "localhost";
mysql_connect($hostname, $login, $password) or die("Unable to connect to MySQL");
mysql_query("use $database") or die("Invalid query: " . mysql_error());
print_r($_FILES[filename]);
if (file_exists($_FILES[filename][tmp_name]))
{
echo "<font style='color:green;'>JAG EXISTERAR!</font>";
$file = $_FILES[filename][tmp_name];
$sql = "INSERT INTO files (id) VALUES ('')";
mysql_query($sql) or die("Invalid query $sql" . mysql_error());
echo mysql_insert_id();
$sql = "update files set file=load_file('$file') where id=".mysql_insert_id();
mysql_query($sql) or die("Invalid query $sql" . mysql_error());
}
else
{
echo "<font style='color:red;'>JAG EXISTERAR INTE!</font>";
}
echo "<form enctype='multipart/form-data' method='POST'>";
echo "<input type='file' name='filename'>";
echo "<input type='submit' value='ladda upp fil'>";
echo "</form>";
?>
L LOOlau Medlem sedan jan. 2004 99 inlägg ok nu står jag som ett frågetecken. Testade att med exact samma kod men ändrade $file = $_FILES[filename][tmp_name]; till $file = "/tmp/.X0-lock" en fil som redan finns i /tmp och det FUNGERAR!?
L LOOlau Medlem sedan jan. 2004 99 inlägg $file = $_FILES[filename][tmp_name];
$exec="chmod 644 $file";
exec($exec, $ceppo, $ceppo2);
Löste problemet.. Antar att sql inte hadde rättighet att läsa filen..