Ergebnis 1 bis 10 von 10

Thema: Erzwungener Bild-Download im Catalog

  1. #1
    Contao-Nutzer Avatar von timbec
    Registriert seit
    22.09.2009.
    Ort
    Aachen
    Beiträge
    150
    Partner-ID
    7828
    User beschenken
    Wunschliste

    Frage Erzwungener Bild-Download im Catalog

    Hallo zusammen,

    ich bin mir nicht ganz sicher ob die Frage hier wirklich richtig ist... also bitte verschieben wenn ich ganz daneben lieg :-)

    Ich habe mir mittels der Catalog Extension eine eigene Bildergalerie mit Übersichtsseite aller Galerien und Galerie-Detailseite (Thumbnails aller in der Galerie enthaltener Bilder) gebaut. In der Detailseite sind die Thumbnails als Lightbox Element auf das große Bild verlinkt. Zusätzlich biete ich die großen Bilder zum direkten Download an.

    Gerade löse ich das einfach über ein _blank - der Benutzer muss das Bild dann per Speichern unter sichern. Unschön.

    Kann ich hierfür irgendwie die Contao eigene ?file= Funktion nutzen? Wenn ich das einfach vor den Pfad (tl_files/content/galerieX/bildx.jpg) setze lande ich immer nur auf der Startseite.

    Danke und Grüße
    Tim

  2. #2
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Hallo timbec,
    da das hier gillt: http://de.selfhtml.org/html/verweise/dateitypen.htm
    reicht es, wenn du den Pfad aus dem Catalog Array nimmst und da ein / an den Anfang stellst (wenn das nicht schon vorhanden ist).

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  3. #3
    Contao-Nutzer Avatar von timbec
    Registriert seit
    22.09.2009.
    Ort
    Aachen
    Beiträge
    150
    Partner-ID
    7828
    User beschenken
    Wunschliste

    Standard

    Hallo Mac KP,

    da der Pfad ja eine Bilddatei ist, zeigt der Browser dieses immer an - das will ich ja vermeiden. Auch mit der Übergabe des Mime types im href Attribut funktioniert das nicht.

    Ich habe es jetzt über eine eigene Download Datei gelöst:

    PHP-Code:
    <?php

    $file 
    $_GET['file'];
    $filesize filesize($file);

    header("Content-Type: image/jpeg");
    header("Content-Disposition: attachment; filename=$file");
    header("Content-Length: $filesize");

    readfile($file);
    exit;
    ?>
    Und rufe das im Template wie folgt auf:
    Code:
    <a target="_blank" href="download.php?file=<?php echo $this->entries[0]['data']['media_galerie']['files'][$picCount]; ?>">Foto herunterladen</a>
    Das funktioniert gut - ich hab nur keine Ahnung ob das Sicherheitstechnisch so eine kluge Idee ist?

    Grüße,
    Tim

  4. #4
    Contao-Nutzer Avatar von timbec
    Registriert seit
    22.09.2009.
    Ort
    Aachen
    Beiträge
    150
    Partner-ID
    7828
    User beschenken
    Wunschliste

    Standard

    So, ich hab ein wenig getestet... Mit dem Script kann ich sämtliche Dateien (auch config files) herunterladen.
    Eine nicht so kluge Idee ;-)

    Wie kann ich das denn besser absichern, das ich z.b. nur Bildateien zulasse, oder auch nur ein spezielles Verzeichniss zum Start?

  5. #5
    Administrator Avatar von xchs
    Registriert seit
    19.06.2009.
    Beiträge
    14.557
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zitat Zitat von timbec Beitrag anzeigen
    Das funktioniert gut - ich hab nur keine Ahnung ob das Sicherheitstechnisch so eine kluge Idee ist?
    Sicherheitstechnisch ist das keine so gute Idee - würde ich meinen. Anstelle von $file = $_GET['file']; solltest Du lieber die Framework-Klassen verwenden:
    PHP-Code:
    $file $this->Input->get('file'); 
    Contao Community Administrator

    [Unterstützungsmöglichkeiten]

  6. #6
    Maintainer Avatar von xtra
    Registriert seit
    02.07.2009.
    Ort
    Tuebingen
    Beiträge
    2.007
    User beschenken
    Wunschliste

    Standard

    Wenn du die Bildausgabe deiner Gallerie sowieso selbst steuerst (auswerten des raw Wertes der Bilder) kannst du in der Feldkonfiguration auch einfach den Haken bei "Link als Dateidownload oder Bilder-Lightbox erstellen." setzen und dafyr den bei "Als Bildfeld mit Miniaturansicht erstellen" weglassen.
    Dann macht das alles der Katalog von sich aus fyr dich.
    Bedenke stets: Wenn Du ungenaue oder unzureichende Angaben machst, so koennte dies die Bearbeitung deiner Frage endlos verzoegern (oder sogar dazu fyhren, dass ich zu viel nachdenken muss und die Antwort vergesse!). Kein Support per PN.

  7. #7
    Contao-Nutzer Avatar von Bankai
    Registriert seit
    01.03.2011.
    Beiträge
    34

    Standard

    Hi,
    also das von timbec funktioniert bei mir so weit auch - mehr oder weniger zumindest.

    Ich will das so machen, das ich eine Galerie hab mit Bild-Elementen für die Mediabox und darunter einen Downloadlink.
    Das passt soweit, per template.

    Jetzt zu den Links, die sehen bei wir wie folgt aus:

    <a target="_blank" href="download.php?<?php echo $col->href; ?>">Download</a>

    Das Bild wird heruntergeladen aber es wird als Name der Datei wird die ganze Verzeichnisstruktur genommen.

    und @xchs: Wie genau muss man die php umbauen zur besseren Sicherheit?
    Weil wenn ich nur das eine Umtausch was du geschrieben hast, komme eine Fehlermeldung

    Fatal error: Using $this when not in object context in [...]/download.php on line 3

  8. #8
    Contao-Nutzer Avatar von tom.loeschnigg
    Registriert seit
    29.07.2010.
    Beiträge
    103

    Standard Jemand schon eine Lösung?

    Hat jemand bereits eine Lösung gefunden? Ich stehe auch vor der Anforderung, dass ich im Catalog einen erzwungenen Bild-Download benötige.
    Webworker finden auf meinem Blog hilfreiches zu Angebote, Akquiese, Contao uvm. selected-items.com

  9. #9
    Contao-Urgestein Avatar von Andreas
    Registriert seit
    19.06.2009.
    Ort
    Mönchengladbach
    Beiträge
    7.703
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Du kannst die Downloadlinks so übers Template aufbereiten. Wenn die Seite mit dem file-Parameter aufgerufen wird sorgt sendFileToBrowser() für den erzwungenen Downloadlink.
    PHP-Code:

    if($this->Input->get('file'))
    {
      
    $this->sendFileToBrowser($this->Input->get('file'));
    }

    $request $this->Environment->request;

    $downloadLink '<a href="'.$request.'?file=tl_files/meinBild.jpg">download</a>'
    Bitte!
    Vor Anfragen im Forum HTML validieren.
    Codesnippets hier im Froum sauber einrücken. Nur Tabs o. nur Leerzeichen verwenden.

    Vielen Dank an alle Wunschlistenerfüller
    Andreas Burg, Web Solutions

  10. #10
    Contao-Nutzer Avatar von tom.loeschnigg
    Registriert seit
    29.07.2010.
    Beiträge
    103

    Standard Vielen Dank Andreas.

    Das werde ich gleich versuchen!
    Webworker finden auf meinem Blog hilfreiches zu Angebote, Akquiese, Contao uvm. selected-items.com

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •