2016-04-22 6 views
2

Я загрузил изображения в базу данных MySQL. Я пытаюсь загрузить сохраненный файл. Но мой сценарий показывает следующее предупреждение:PHP-файл не загружается

Предупреждение: Не удается изменить информацию в заголовке - заголовки уже посланные

Я также испытанный: Content-Disposition: attachment. Но это все еще не работает. Файл не загружается, вместо этого он печатает файл:

Printed file

Вот мой код:

$query = "SELECT * FROM Upload"; 
$result = mysqli_query ($con, $query) 
    or die ("Couldn't execute SELECT query: ". mysqli_error($con)); 
$nrows = mysqli_num_rows($result); 


echo '<table> 
    <tr> 
     <td>Id</td> 
     <td>Name</td> 
     <td>Type</td> 
     <td>Size (MB)</td> 
    </tr>'; 
    $selfpg = $_SERVER['PHP_SELF']; 
    while($row = mysqli_fetch_assoc($result)){ 
     extract($row); 
     echo "<tr> 
       <td>$Id</td> 
       <td>$Name</td> 
       <td>$Type</td> 
       <td>$SizeMB</td> 
       <td> <a href='$selfpg?id=$Id'> Download </a> </td> 
      </tr>";  
} 
echo '</table>'; 

//---------------------------------------------------------------------- 
if (isset($_GET['id'])){ 
    mysqli_data_seek($result,0); 
    $row = mysqli_fetch_assoc($result); 
    extract($row); 
    header("Content-Type: ". $Type); 
    header("Content-Length: ". $SizeMB); 
    header("Content-Disposition: inline; filename= ". $Name); 
    echo $Content; 
} 
else{ 
    echo "<br>No id received to download a file</br>"; 
} 
+0

Хотите ли вы загрузить изображение или включить его на своей странице? – slax0r

+0

Я хочу его загрузить. – Amali

ответ

1

Ваш скрипт начинает вывод данных с echo. Это означает, что заголовки по умолчанию уже отправлены, поскольку вы эхом отзываете что-то на странице, поэтому вы не можете отправить их повторно. Чтобы иметь возможность отозвать что-то на страницу, а также отправлять заголовки, необходимые для загрузки файла, вы должны использовать output buffering

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