Wie kann PHP verwendet werden, um Dateianhänge im Hintergrund herunterzuladen und sie dann dem Benutzer zur Verfügung zu stellen, ohne dass die Seite neu geladen werden muss?
Um Dateianhänge im Hintergrund herunterzuladen und sie dem Benutzer zur Verfügung zu stellen, ohne die Seite neu zu laden, können wir AJAX verwenden. Das bedeutet, dass wir eine separate PHP-Datei erstellen, die den Dateianhang herunterlädt und dann den Dateipfad zurückgibt. Anschließend können wir diesen Dateipfad verwenden, um einen Download-Link auf der Seite zu erstellen, den der Benutzer anklicken kann, um die Datei herunterzuladen, ohne die Seite zu verlassen.
<?php
// Datei herunterladen und Dateipfad zurückgeben
if(isset($_GET['file'])){
$file = $_GET['file'];
$file_path = 'pfad/zum/ordner/' . $file;
if(file_exists($file_path)){
// Datei herunterladen
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file_path).'"');
readfile($file_path);
exit;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Datei herunterladen</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<button id="downloadBtn">Datei herunterladen</button>
<script>
$(document).ready(function(){
$('#downloadBtn').click(function(){
$.ajax({
url: 'download.php',
type: 'GET',
data: {file: 'beispiel.pdf'},
success: function(data){
var downloadLink = document.createElement('a');
downloadLink.href = data;
downloadLink.download = 'beispiel.pdf';
downloadLink.click();
}
});
});
});
</script>
</body>
</html>