php - 从MYSQL数据库下载文件

标签 php mysql

好的,我已经将文件上传到我的数据库了。但是从数据库下载文件时遇到问题,它显示为链接,当我单击该链接时没有任何反应。

我对 php 还很陌生,所以我的代码并不完美。

这是我的上传文件

 <?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;
   }
    ?>

最佳答案

我彻底扫描了您的代码,这是最终答案。

<?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)){
            echo "<a href=\"download.php?id=\$id\">$name</a><br>";
        }
    }

    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_row($result);
        header("Content-Disposition: attachment; filename=\"$name\"");
        header("Content-type: $type");
        header("Content-length: $size");
        print $content;
    }
?>

关于php - 从MYSQL数据库下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15560441/

相关文章:

php - 有没有比将它放在 PHP 数组中更好的方法来隐藏和存储 JQuery/JavaScript 应用程序的只读数据?

php - WordPress插件国际化: variables not translated?

android - 无法显示来自存储在 mysql 数据库中的坐标的 google maps android 标记

java - 早上数据库访问失败

mysql - sql使用内连接连接三个表

php - 将表字段值更新为 value-1

php - 将文本从网站发布到数据库时发生未知错误

php - 在Docker容器中的phpfpm和nginx之间共享应用程序文件

php mysql插入数据,但是是在while循环中

javascript - 将 Javascript 变量发送到文件中 PHP 的函数参数中?