Click to See Complete Forum and Search --> : Download Image


Dysan
11-14-2007, 12:26 PM
Hi,

I have image paths stored inside a database, how do I create a link, in order to display the down dialog box to enable the user to download the file/image?

ScoobyDooobyD00
11-14-2007, 12:34 PM
I think this will help.

<html>
<head>
<title>Download File From MySQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
$con = mysql_connect("HOST","USERNAME","PASSWORD");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("DATABASE", $con);

$query = "SELECT id, name FROM upload";
$result = mysql_query($query) or die('Error, query failed');
if(mysql_num_rows($result) == 0)
{
echo "Database is empty <br>";
}
else
{
while(list($id, $name) = mysql_fetch_array($result))
{
?>
<a href="download.php?id=<?php=$id;?>"><?php=$name;?></a> <br>
<?php
}
}
mysql_close($con);
?>
</body>
</html>

also if your using more than just "id" and "name" then you'll have to do this.

I added field here
$query = "SELECT id, name, field here FROM upload";


and here
while(list($id, $name, $field here) = mysql_fetch_array($result))

Then you'll add this at the beginning of the script.

<?php
if(isset($_GET['id']))
{
// if id is set then get the file with the id from database

$con = mysql_connect("HOST","USERNAME","PASSWORD");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("DATABASE", $con);

$id = $_GET['id'];
$query = "SELECT name, type, size, content " .
"FROM upload WHERE id = '$id'";

$result = mysql_query($query) or die('Error, query failed');
list($name, $type, $size, $content) = mysql_fetch_array($result);

header("Content-length: $size");
header("Content-type: $type");
header("Content-Disposition: attachment; filename=$name");
echo $content;

mysql_close($conn);
exit;
}

?>
I hope this helps.