Download einer ZIP-Datei in HTML automatisch starten
Hallo.
Ich möchte gerne eine ZIP-Datei zum Download anbieten. Der Download soll direkt bei Aufruf der Seite starten.
Da sich die Seite auf Blogger.com befindet kann ich dort kein PHP verwenden, sondern nur HTML. Ggf. auch Javascript - das muss ich noch testen...
Gibt es die Möglichkeit direkt in HTML der notfalls mit Javascript einen Download bei Seitenaufruf auszulösen? Wenn ja: Wie? weiterführende Seiten?
Für Hilfe wäre ich sehr dankbar!
VG
ellingm
Antwort schreiben
Das geht mit einem ganz normalen HTML-Hyperlink.
<a href="Pfad/zur/Datei.zip">Hier ist ein Zip-File-Download</a>
Zip-Dateien werden normalerweise nicht geöffnet wie z.B. andere HTML-Seiten oder PDF-Dateien, sondern werden heruntergeladen bzw. wird ein Download-Dialog angezeigt.
Antwort 2 von reinerX vom 16.10.2022, 09:06 Options
Zitat:
Der Download soll direkt bei Aufruf der Seite starten.
da machst du dich unbeliebt. ein download sollter per link oder button gestartet werden, nicht "von selbst", sonst kommt der verdacht auf einen virus/trojaner nahe.
Tja, da habe ich das obige Zitat überlesen...
den Download kannst mit Javascript z.B. per "onload" im <body>-Tag auslösen. Dann müsste auch ein Download-Dialog kommen.
Was davon zu halten ist, steht ja schon in Antwort 2.
Antwort 4 von ellingm vom 16.10.2022, 12:27 Options
Hallo.
Danke für Eure schnellen Antworten!
Ich will auf keinen Fall den Eindruck eines Virus/Trojaner erwecken! Ich möchte den Download auf zwei Seiten verteilen. Auf Seite 1 klickt der Nutzer AKTIV an, dass er einen Download durchführen will. Nun öffnet sich Seite 2 und es startet direkt der Download. Das Ziel ist, dass ich eine Statistik darüber haben möchte, wie viele Leute tatsächlich den Download ausgeführt haben. Mit Google Analytics will ich ein Kampagnenziel einrichten: Zähle, wie viele Leute die Seite 2 erreicht haben.
Das mit dem OnClick klingt gut. Kannst Du es noch ein bisschen ausführen? Steht OnClick auf Seite 1 oder auf Seite 2? Kann ich OnClick mit 2 Aktionen versehen? Aktion 1: Lade Seite 2 und Aktion 2: Starte den Download?
Ich hoffe, dass meine Ausführungen hier nicht verwirren und wäre für eine erneute Antwort sehr dankbar!!
VG
ellingm
Naja, von "OnClick" war hier nicht die Rede, sondern von "onload".
Aber Du kannst auf der 1. Seite ein Formular erstellen, das nur einen sichtbaren Button enthält. Beim Klicken auf den Button wird man dann auf Seite 2 weitergeleitet und da startet dann der Download. Was Du mit dem Kampagnenziel meinst ist mir nicht ganz klar, aber mit Google Analytics kenne ich mich auch nicht aus.
Antwort 6 von ellingm vom 17.10.2022, 00:07 Options
Oh ja. Onload, nicht OnClick - Sorry!!
Habe jetzt unter
http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onload Infos zu Onload gefunden:
Zitat:
<html><head><title>Test</title>
<script type="text/javascript">
function NaviFenster () {
Navigation = window.open("navigat.htm", "Navigation", "height=200,width=300");
Navigation.focus();
}
</script>
</head>
<body onload="NaviFenster()">
<h1>Seite mit "Fernbedienung"</h1>
</body></html>
Die Datei, deren Download bei Seitenaufruf gestartet werden soll ist eine ZIP-Datei.
Verstehe ich es richtig, das ich nun in den HEAD der Seite den obigen Code eingebe? Statt "navigat.htm" gebe ich dann die URL der ZIP-Datei an, die geladen werden soll?
Das stellt sich als Problem dar, da ich die HEAD-Datei bei Blogger.com nur global pflegen kann. Das hieße, dass künftig bei JEDEM Seitenaufruf die ZIP-Datei geladen würde...
Gibt es nicht die Möglichkeit, die ZIP-Datei über eine Art Include (wie gesagt: PHP geht leider nicht...) direkt zwischen den Body-Tags einzubinden, so dass der Download der Datei NUR bei Aufruf DIESER speziellen Seite gestartet wird?
Für jeden Tipp dankbar,
ellingm
So zum Beispiel:
Seite 1 (test1.htm)
Zitat:
<html>
<head>
</head>
<body>
<a href="testdwnld.htm">Download auf nächster Seite starten</a>
<p>oder als Formular</p>
<form action="testdwnld.htm">
<input type="submit" value="Zum Download">
</form>
</body>
</html>
Seite 2 (testdwnld.htm)
Zitat:
<html>
<head>
<script type="text/javascript">
function initDownload()
{
var Ziel = "testfile.zip";
window.location.href = Ziel;
}
</script>
</head>
<body onload="initDownload()">
<a href="testfile.zip">Download (startet automatisch, wenn Javascript aktiviert ist und nicht geblockt wird)</a>
</body>
</html>
Aber wie und ob das jetzt von Google Analytics ausgewertet wird, weiss ich nicht.
Antwort 8 von supporter2010 vom 17.10.2022, 05:02 OptionsLösung
Ach so, wenn Du den <head>-Bereich nicht modifizieren darfst, kannst Du den <script>-Teil auch in den <body> schreiben:
Seite2 (testdwnld.htm)
Zitat:
<html>
<head>
</head>
<body onload="initDownload()">
<script type="text/javascript">
function initDownload()
{
var Ziel = "testfile.zip";
window.location.href = Ziel;
}
</script>
<a href="testfile.zip">Download (startet automatisch, wenn Javascript aktiviert ist und nicht geblockt wird)</a>
</body>
</html>
Antwort 9 von gast_42 vom 17.10.2022, 18:28 Options
da stellt sich (neben der Frage nach Sinn und Unsinn solcher Aktivitäten) die Frage, ob der body-Tag verändert werden darf, was ich bezweifle.
In diesem Fall hilft dieser Code
<script type="text/javascript">
window.onload=function() {
this.location.href="datei.zip";
}
</script>
an beliebiger Stelle. Dieser Code hat auch den Vorteil der Kürze und der Übersichlichkeit, da er nicht auf 2 Stellen verteilt ist.
Antwort 10 von son_quatsch vom 18.10.2022, 08:14 Options
Zitat:
Nun öffnet sich Seite 2 und es startet direkt der Download.
Warum extra nochmal eine Seite? Warum nicht direkt der Link auf die ZIP-Datei?