Ergebnis 1 bis 7 von 7

Thema: Bilder aus Standard-Galerie herunterladen

  1. #1
    Contao-Fan Avatar von comanche
    Registriert seit
    12.11.2009.
    Beiträge
    496

    Standard Bilder aus Standard-Galerie herunterladen

    Hallo Leute,

    ich such mir schon den Wolf und finde keine zufriedenstellende Lösung für mein einfaches Problem, das laut Suche schon viele mit mir teilten: zu den Bildern in einer einfachen Galerie möchte ich zusätzlich den jeweiligen Download-Link bereitstellen.

    Ich habe nun versucht das Template "gallery_default.html5" dahingehend zu verändern, dass ich die Zeichenkette

    Code:
    {{env::path}}{{page::alias}}.html?file=<?php echo $col->href; ?>
    als Link mit jedem Bild ausgebe. Das Resultat ist (in meinem Beispiel):

    Code:
    http://www.calmbach.com/contaodreieins/galerie.html?file=files/Bilder/campus_building.jpg
    jedoch startet dadurch kein Download. Das Bild direkt verlinken und anzeigen ist kein Problem. Aber ich möchte gerne dass der Download startet, so wie dies bei einer Download-Liste der Fall ist. Was mache ich falsch? Für jeden Hinweis bin ich dankbar.

    Schönes Wochenende euch allen!

    Grüße,
    Andreas
    Geändert von comanche (13.09.2013 um 13:44 Uhr)

  2. #2
    Contao-Fan Avatar von comanche
    Registriert seit
    12.11.2009.
    Beiträge
    496

    Standard Hmmm...

    Wenn ich auf der selben Seite ein Element "Downloads" anlege und dort beispielsweise das Bild "campus_building.jpg" bereitstelle, dann klappt auch der Download mit meinem manuellen Link in der Galerie. Für Bilder die nicht in "Downloads" verfügbar sind, funktioniert auch nicht mein Link in der Galerie.

    Also müssen die Dateien aus Sicherheitsgründen für den direkten Download irgendwie gesperrt sein. Was macht denn die "Downloads-Liste", dass der Zugriff gestattet wird? Und wie kann ich den Zugriff dann auch für die Galerie gewähren?

    Grüße,
    Andreas

  3. #3
    Contao-Fan Avatar von bekanntmacher
    Registriert seit
    13.08.2009.
    Ort
    St. Gallen, Schweiz
    Beiträge
    354
    Partner-ID
    6419

    Standard

    Das Download-Element "schaut" ob die Datei der URL file=... auch mit dem zugewiesenen File übereinstimmt => Sicherheit. Für dein Vorhaben müsstest du schauen, ob es ein Modul gibt (Galerie mit Download-Links) oder es müsste ein Modul erstellt werden.

  4. #4
    Contao-Fan Avatar von comanche
    Registriert seit
    12.11.2009.
    Beiträge
    496

    Standard

    Danke für Deine Antwort.

    Natürlich habe ich schon geschaut, ob es ein passendes Modul gibt (Contao 3.x), aber ich habe (leider) nichts Entsprechendes gefunden - nur X Beiträge zu dieser Problematik.

    Grüße,
    Andreas

  5. #5
    Contao-Nutzer Avatar von delirius
    Registriert seit
    17.01.2011.
    Ort
    Aarau
    Beiträge
    175
    Partner-ID
    6722

    Standard

    Ich habe im Template "gallery_default.html5" am Anfang noch folgender Code eingefügt:

    Code:
    <?php
    // Send the file to the browser
    if (strlen($this->Input->get('file', true)))
    {
        $this->sendFileToBrowser($this->Input->get('file', true));
    }
    ?>
    Daniel Herren www.delirius.ch

  6. #6
    Contao-Nutzer Avatar von joc
    Registriert seit
    17.01.2011.
    Ort
    Bad Breisig am Rhein
    Beiträge
    84
    Partner-ID
    8461

    Standard

    Ist das nicht etwas unsicher?
    Hier wird ist im Prinzip möglich JEDE Datei herunterzuladen, wenn man die GET Parameter in der Browserleiste anpasst. Oder?

    Ich würde im Template noch abfragen, ob "Input->get('file')" auch in dem Array der ausgegebenen Bilder befindet.
    Also vielleicht so ungefähr:

    PHP-Code:
    <?php
    // Erlaubte Dateien
    $allowedFiles=array();
    ?>
    <ul>
      <?php foreach ($this->body as $class=>$row): ?>
        <?php foreach ($row as $col): ?>
        <?php $allowedFiles[]=$col->href?>
          <?php if ($col->addImage): ?>
          
            <li class="<?php echo $class?> <?php echo $col->class?>">
              <figure class="image_container"<?php if ($col->margin): ?> style="<?php echo $col->margin?>"<?php endif; ?>>
                <?php if ($col->href): ?>
                  <a href="{{env::path}}{{page::alias}}.html?file=<?php echo $col->href?>"<?php echo $col->attributes?> title="<?php echo $col->alt?>"><img src="<?php echo $col->src?>"<?php echo $col->imgSize?> alt="<?php echo $col->alt?>"></a>
                <?php else: ?>
                  <img src="<?php echo $col->src?>"<?php echo $col->imgSize?> alt="<?php echo $col->alt?>">
                <?php endif; ?>
                <?php if ($col->caption): ?>
                  <figcaption class="caption" style="width:<?php echo $col->arrSize[0]; ?>px"><?php echo $col->caption?></figcaption>
                <?php endif; ?>
              </figure>
            </li>
          <?php endif; ?>
        <?php endforeach; ?>
      <?php endforeach; ?>
    </ul>

    <?php
    // Send the file to the browser
    // if allowed
    if (strlen($this->Input->get('file'true))){
        if(
    in_array($this->Input->get('file'),$allowedFiles)){
            
    $this->sendFileToBrowser($this->Input->get('file'true));
        }
    }
    ?>



    Zitat Zitat von delirius Beitrag anzeigen
    Ich habe im Template "gallery_default.html5" am Anfang noch folgender Code eingefügt:

    Code:
    <?php
    // Send the file to the browser
    if (strlen($this->Input->get('file', true)))
    {
        $this->sendFileToBrowser($this->Input->get('file', true));
    }
    ?>

  7. #7
    Contao-Fan Avatar von comanche
    Registriert seit
    12.11.2009.
    Beiträge
    496

    Standard Funktioniert!

    Danke vielmals! Funktioniert prima! :-)

    Grüße,
    Andreas


    Zitat Zitat von joc Beitrag anzeigen
    Ist das nicht etwas unsicher?
    Hier wird ist im Prinzip möglich JEDE Datei herunterzuladen, wenn man die GET Parameter in der Browserleiste anpasst. Oder?

    Ich würde im Template noch abfragen, ob "Input->get('file')" auch in dem Array der ausgegebenen Bilder befindet.
    Also vielleicht so ungefähr:

    PHP-Code:
    <?php
    // Erlaubte Dateien
    $allowedFiles=array();
    ?>
    <ul>
      <?php foreach ($this->body as $class=>$row): ?>
        <?php foreach ($row as $col): ?>
        <?php $allowedFiles[]=$col->href?>
          <?php if ($col->addImage): ?>
          
            <li class="<?php echo $class?> <?php echo $col->class?>">
              <figure class="image_container"<?php if ($col->margin): ?> style="<?php echo $col->margin?>"<?php endif; ?>>
                <?php if ($col->href): ?>
                  <a href="{{env::path}}{{page::alias}}.html?file=<?php echo $col->href?>"<?php echo $col->attributes?> title="<?php echo $col->alt?>"><img src="<?php echo $col->src?>"<?php echo $col->imgSize?> alt="<?php echo $col->alt?>"></a>
                <?php else: ?>
                  <img src="<?php echo $col->src?>"<?php echo $col->imgSize?> alt="<?php echo $col->alt?>">
                <?php endif; ?>
                <?php if ($col->caption): ?>
                  <figcaption class="caption" style="width:<?php echo $col->arrSize[0]; ?>px"><?php echo $col->caption?></figcaption>
                <?php endif; ?>
              </figure>
            </li>
          <?php endif; ?>
        <?php endforeach; ?>
      <?php endforeach; ?>
    </ul>

    <?php
    // Send the file to the browser
    // if allowed
    if (strlen($this->Input->get('file'true))){
        if(
    in_array($this->Input->get('file'),$allowedFiles)){
            
    $this->sendFileToBrowser($this->Input->get('file'true));
        }
    }
    ?>

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
  •