9.3k Aufrufe
Gefragt in Webseiten HTML von ellingm Einsteiger_in (11 Punkte)
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

10 Antworten

0 Punkte
Beantwortet von Experte (6.4k Punkte)
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.
0 Punkte
Beantwortet von
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.
0 Punkte
Beantwortet von Experte (6.4k Punkte)
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.
0 Punkte
Beantwortet von ellingm Einsteiger_in (11 Punkte)
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
0 Punkte
Beantwortet von Experte (6.4k Punkte)
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.
0 Punkte
Beantwortet von ellingm Einsteiger_in (11 Punkte)
Oh ja. Onload, nicht OnClick - Sorry!!

Habe jetzt unter de.selfhtml.org/javascript/sprache/eventhandler.htm#onload Infos zu Onload gefunden:

<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
0 Punkte
Beantwortet von Experte (6.4k Punkte)
So zum Beispiel:


Seite 1 (test1.htm)
<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)
<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.
0 Punkte
Beantwortet von Experte (6.4k Punkte)
Ach so, wenn Du den <head>-Bereich nicht modifizieren darfst, kannst Du den <script>-Teil auch in den <body> schreiben:

Seite2 (testdwnld.htm)
<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>
0 Punkte
Beantwortet von
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.
0 Punkte
Beantwortet von son_quatsch Experte (5.3k Punkte)
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?
...