Télécharger des fichiers à partir de la base de données MYSQL
ok j'ai obtenu les fichiers de téléchargement à ma base de données correct. mais avoir des problèmes pour télécharger des fichiers à partir de la base de données, il s'affiche comme un lien et quand je clique sur le lien rien ne se passe.
je suis encore nouveau pour php donc mon code mon de ne pas être parfait.
voici mon fichier de téléchargement
<?php
require 'connect.php';
?>
<form method="post" enctype="multipart/form-data">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr>
<td width="246">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file" id="userfile">
</td>
<td width="80"><input name="upload" type="submit" class="box" id="upload" value="
</tr>
</table>
</form>
<?php
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileType = $_FILES['userfile']['type'];
$fileSize = $_FILES['userfile']['size'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
$query = "INSERT INTO upload (name, type, size, content) ".
"VALUES ('$fileName', '$fileType', '$fileSize', '$content')";
mysql_query($query) or die('Error, query failed');
echo "<br>File $fileName uploaded<br>";
}
?>
Here is my download
<?php
require 'connect.php';
$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 echo urlencode($id);?>"><?php echo urlencode($name);? ></a> <br>
<?php
}
}
exit;
mysql_close()
?>
<?php
require 'connect.php';
$query = "SELECT id, name FROM upload";
if(isset($_GET['id']))
{
$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);
$content = $row['content'];
header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-type: $type");
header("Content-length: $size");
exit;
print $content;
ob_clean();
flush();
echo $content;
}
?>
- généralement recommandé de ne pas stocker des fichiers en db
Vous devez vous connecter pour publier un commentaire.
Je scrute attentivement votre code et voici la réponse finale.
Dans votre
download.php
vous faire les liens etexit
. Cela signifie que vous ne va pas plus loin que votreexit
appel.Vous devez repenser votre logique dans le fichier de téléchargement. Vous appelez