У меня есть кнопка загрузки, и когда я нажимаю на нее, вместо сохранения на диск она открывается в браузере. Я перепробовал кучу попыток сделать его открытым в браузере, но это не кажется, что сделать что-нибудькнопка загрузки - сохранение файла на диск вместо открытия
<?php
// make a connection to the database
require_once("connection/connection.php");
//retrieve the ID from the url to fetch the specific details
if ($_GET['id'] != ""){
$item_id = $_GET['id'];
$bad_id = FALSE;
}
else{
$item_id = "";
$bad_id = TRUE;
}
//select the specific item from the database
// run if statement to ensure valid id was passed
if (is_numeric ($_GET['id'])){
$query = "SELECT name FROM repository WHERE item_id = '$item_id'";
$result = mysql_query($query) or die(mysql_error());
// assign the values to an array
$row = mysql_fetch_assoc($result);
//assign the values from the array to variables
$name = $row['name'];
}
// define path to the xml file
$file = "xml/".$hud_name . "_cfg.xml";
// check to make sure the file exists
if(!file_exists($file)){
die('Error: File not found.');
} else{
// Set headers
header("Content-Type: application/xml");
header("Content-Disposition:attachment; filename=".basename($file)."");
readfile($file);
}
?>
То есть download.php и, очевидно, находит файл, потому что оно не дает ошибку об этом не существует. Она также вторит обратно правильный путь к файлу
Затем на другой странице у меня есть:
<a href="download.php?id=<?php echo $item_id; ?>"><img src="images/download.png" alt=""/></a>
Любые идеи, что не так?
Для установки вам нужно имя basename ($ file) 'при настройке заголовка файла. Вы используете имя файла с указанным в нем способом – jszobody
tbh Я не уверен, что такое basename. Должен ли я просто изменить это и оставить путь к файлу таким же? header ("Content-Disposition: attachment; filename = '". basename ($ file). "'"); Или я могу удалить часть xml и определить где-нибудь имя_базы? – user1547410