2015-06-12 3 views
-1

С базой данных, подключенной должным образом, когда я пытаюсь загрузить файлы, содержимое, которое я получаю, является страницей php этого файла, над которой я работаю. Вместо файла, который был загружен в базу данных. Почему это происходит?Загрузить файл из базы данных

$query = "SELECT id, name FROM docu"; 
$result = mysqli_query($con,$query) or die('Error, query failed'); 

if(mysqli_num_rows($result)==0){ 
    echo "Database is empty <br>"; 
} 
else{ 
    while(list($id, $name) = mysqli_fetch_array($result)){ 
     echo "<a href='download.php?id='$id>$name</a><br>"; 
    } 
} 

if(isset($_GET['id'])){ 
    $id = $_GET['id']; 
    $query = "SELECT id, name, type, size, content FROM docu WHERE id = '$id'";  
    $result = mysqli_query($con,$query) or die('Error, query failed'); 
    list($id, $name, $type, $size, $content) = mysqli_fetch_row($result); 
    header("Content-Disposition: attachment; filename='$name'"); 
    header("Content-type: $type"); 
    header("Content-length: $size"); 
    echo $content; 
    exit; 
} 
+1

Вы не можете иметь эхо и заголовок. Кроме того, ваш запрос может быть неудачным. –

+0

Добавьте отчет об ошибках в начало вашего файла (ов) сразу после открытия PHP-тега , например '

+0

Вы также дважды запрашиваете ту же переменную. Покажите нам, что такое схема db и содержимое строки. Если ваш столбец не BLOB, файл должен существовать на вашем сервере. –

ответ

0

Изменить код

while ((list($id, $name) = mysqli_fetch_array($result, MYSQLI_BOTH)){echo $name . " " . $id. " " ."<a href=download.php?id=$id>$name</a><br>"; } 

в использовании download.php

if(isset($_GET['id'])){ 
$id = $_GET['id']; 
$query = "SELECT id, name, type, size, content FROM docu WHERE id = '$id'"; $result = mysqli_query($link, $query);$row = mysqli_fetch_array($result, MYSQLI_BOTH);$size = $size;$type = $type;$name =$name;header("Content-length: $size");header("Content-type: $type");header("Content-Disposition: attachment; filename=$name");}mysqli_close($link); 
+0

' $ row ['area_of_exp'] 'вы предполагаете, что OP имеет строку с именем' area_of_exp', почему? –

+0

Я обновил его ... insted из $ name и $ id – Bruce

Смежные вопросы