LOOlauMedlem sedan jan. 200499 inlägg 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..
LOOlauMedlem sedan jan. 200499 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>";
?>
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.
LOOlauMedlem sedan jan. 200499 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>";
?>
LOOlauMedlem sedan jan. 200499 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!?
LOOlauMedlem sedan jan. 200499 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..