Seite 1 von 1
functioniert nicht: html download attribute
Verfasst: Di 20. Okt 2015, 10:37
von frogli
Hallo,
ich würde gerne den neuen HTML5 "download" Attribut verwenden. Auf andere Beispiel-Webseiten funktioniert es einwandfrei. Also ist es nicht ein Browser-Problem.
Sowohl
als auch
Code: Alles auswählen
<a href="bla/bla/image.jpg" download="true">Speichern</a>
funktionieren nicht.
Ich habe schon im Internetz recherchiert und da wird darauf hingewiesen, dass Content-Disposition hier die Funktion aushebeln kann. Vielleicht macht hier Contenido mir ein Strich durch die Rechnung.
frogli
Re: functioniert nicht: html download attribute
Verfasst: Di 20. Okt 2015, 12:22
von Faar
Re: functioniert nicht: html download attribute
Verfasst: Di 20. Okt 2015, 15:38
von frogli
Nein (Siehe 1. Posting). Diese Beispiele funktionieren eben (bei mir) in Contenido nciht.
Re: functioniert nicht: html download attribute
Verfasst: Di 20. Okt 2015, 19:27
von Faar
Stimmt denn dein Document als HTML5 ?
https://validator.w3.org/
Re: functioniert nicht: html download attribute
Verfasst: Mi 21. Okt 2015, 18:44
von frogli
Faar hat geschrieben:Stimmt denn dein Document als HTML5 ?
Also ich habe deinen Link versucht. Ein eindeutiges Ergebnis á la "HTML5 Valid" bekomme ich nicht.
Ich hätte mich schon von Anfang bemüht HTML5-Compliant zu sein. Und meine andere HTML5-Tags werden ja auch erkannt. Irgendwie kommt mir das Problem komplett banal vor, aber ich komme jetzt schon nach 2 Tage herumprobieren nciht dahinter was ich falsch mache.
hier der link
http://freigeist.bocom.at/freigeist/pre ... index.html
nachdem man ein Bild anclickt öffnet sich ein Lightbox und mir geht es vor allem um den link "Bild in Druckqualität". Danke.
frogli
Re: functioniert nicht: html download attribute
Verfasst: Mi 21. Okt 2015, 19:23
von Faar
Das wird am Javascript liegen.
Damit wird ja auch ein Dokument über die bestehende Seite gelegt und vermutlich geht hier der Kontext zur Doctype des ursprünglichen Dokumentes verloren.
Bei mir öffnet der Link nur ein neues Tab.
Ich wage mal, anzunehmen, dass dieser Downloadlink funktionieren würde, wenn Du ihn unter das Vorschaubild setzen würdest.
Probier das mal aus und wenn es dann klappt, liegt es am Javascript Aufbau wie vermutet.
Re: functioniert nicht: html download attribute
Verfasst: Do 22. Okt 2015, 07:17
von Oldperl
Hallo frogli,
das Attribut wird hier falsch angewendet, da es sich
nicht um einen Boolean-Wert handelt, sondern der Wert des Attributes die Adresse des Links beinhalten soll. Setzt man nur das Attribute ohne Inhalt/Wert, so wird der Wert des href-Attributes genommen.
Siehe
https://wiki.selfhtml.org/wiki/HTML/Tex ... d-Verweise
Gruß aus Franken
Ortwin
Re: functioniert nicht: html download attribute
Verfasst: Do 22. Okt 2015, 09:18
von Zuschauer
Oldperl hat geschrieben:sondern der Wert des Attributes die Adresse des Links beinhalten soll. Setzt man nur das Attribute ohne Inhalt/Wert, so wird der Wert des href-Attributes genommen.
Stimmt so nicht, der Wert des Attributs (wenn gesetzt) wird beim Speichern als Dateiname verwendet.
Ist kein Wert gesetzt, wird der Original-Dateiname verwendet.
Im href-Attribut steht der komplette Pfad (absolut oder relativ), nicht nur der Dateiname.
Gruß
Zuschauer
Re: functioniert nicht: html download attribute
Verfasst: Do 22. Okt 2015, 09:55
von Oldperl
Danke für die Korrektur, das war natürlich nicht ganz richtig von mir. Steht aber auch unter dem hinterlegten Link
Bei einem Klick auf das Bild öffnet sich eine Download-Dialogbox. Der untere Link bekommt durch download="alte_doku.zip" einen neuen Dateinamen.
Gruß aus Franken
Ortwin
Re: functioniert nicht: html download attribute
Verfasst: Do 22. Okt 2015, 13:05
von frogli
Faar hat geschrieben:Das wird am Javascript liegen.
Da glaube ich, dass du hier richtig bist. Leider reichen meine Kenntnisse in JS nicht aus um die Anpassung zu machen.
Ich habe es jetzt mit php mit GET gelöst.
Hier meine Lösung (für die es bräuchten oder wissen wollen

):
Ich habe einen Artikel (download-datei) mit auschließlich einem Modul mit folgenden Output-Code gemacht.
Code: Alles auswählen
$fileName = $_GET['fileName'];
$folderName = $_GET['folderName'];
$path = "upload/" . $folderName . "/" . $fileName;
function DownloadFile($path) { // $file = include path
if(file_exists($path)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.basename($path));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($path));
ob_clean();
flush();
readfile($path);
exit;
}
}
DownloadFile($path);
Der Link ($link "href=/download-datei/download-datei.html?folderName=" . $folderName. "&fileName=" . $fileName;) verweist jetzt auf diesem Artikel und überträgt zusätzlich Ordner- und Dateiname.
... und jetzt wird die Datei als Download angeboten.
Ich hoffe es war halbwegs verständlich.
Danke
frogli