08/06
Schöner Speichern:
Generierte Dateien zum Download anbieten mit AJAX und PHP
Part I - Worum geht´s eigentlich ?
Folgendes Problem: In einer Web-Anwendung gibt es einen Button, der on the fly eine Datei generiert(csv, pdf, Bild...etc.) und diese dem User zum Download anbietet. Wer sowas schon mal gemacht hat, kennt wahrscheinlich die kleinen Stolperfallen, mit denen man sich herumschlagen muss, wenn man ein Download-Fenster des Browsers erzwingen möchte. Da die Seite mit der zu herunterladenen Datei einen eigenen Header braucht, behilft man sich oft mit der Platzierung der Seite in einem unsichtbaren IFrame oder in einem neuen Fenster. Allerdings geht es auch deutlich einfacher:
In diesem Beispiel befindet sich eine kleine HTML-Datei mit einer Form. Darin befindet sich lediglich ein Button zum Generieren einer Textdatei auf dem Server.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de">
<head>
<title>Generieren einer Datei und Erzwingen eines Download-Dialogs</title>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<form>
<input type="button" value="Datei generieren" onClick="javascript:generate()"/>
</form>
</body>
</html>
generate().Die JS-Datei wurde im Header eingebunden.
Mehr gibts zu dieser Datei gar nicht zu sagen. Weiter gehts mit Part II.