Dokumente werden vom System erstellt und im Ordner / web / downloads gespeichert. Ich habe eine Ansicht erstellt, um Links anzuzeigen, die es einem Benutzer ermöglichen, die Dateien herunterzuladen, wenn der Benutzer auf die Links klickt. (Standard-Klick zum Herunterladen der Funktion)
Ich bin neu in Symfony2 und bin dabei, das gesamte Routing / Controller-Konzept zu verstehen, aber wie würde man einen Link zu solchen Dateien erstellen, während man immer noch an der MVC festhält? Muss man Routing mit einem Controller einrichten oder hat Zweig Features, die es erlauben etc ..
PS: Ich habe Fragen wie Wie erstellt man einen Download-Link in Symfony2? aber ich bekomme nicht, wenn sie etwas im Routing getan haben oder einfach nur Links hinzugefügt haben.
Danke,
Beispielimplementierung wäre
Erstellen Sie eine Route,
%Vor%Und dann in Ihrem Controller,
%Vor%Um einen Download-Link zu erstellen, überprüfen Sie URLs generieren im Dokument.
>Dies ist die beste Lösung, die ich bisher gefunden habe. Sie können damit Downloads von außerhalb Ihres "/ var / www / web /" - Ordners bereitstellen, was die Datei nicht macht zugänglich, ohne dieses Skript auszuführen, um die Datei zu bedienen.
Auf diese Weise können Sie prüfen, ob der Downloader die Datei herunterladen darf, die er möchte.
In diesem Beispiel habe ich "/ var / www / downloads /" verwendet, wo ich alle Dateien speicher, die ich als Download bereitstellen möchte:
%Vor%Quelle: Dokumente: Ссылка
(sollte an Versionen über 2.2 arbeiten)
Das Hinzufügen des Pfads der Datei zum href
-Attribut funktionierte für mich nicht.
Wenn Sie darauf klicken, wird nur die Datei angezeigt, ohne sie wirklich herunterzuladen.
Was für mich funktionierte, ist das Hinzufügen eines download
-Attributs zu meinem Link, der ein HTML5-Attribut ist. Fügen Sie einfach das Attribut wie folgt hinzu:
Wenn Sie auf den Link klicken, wird die Datei ohne einen Servercode heruntergeladen.
Sie können dem Attribut download
auch einen Wert zuweisen.
Der Wert des Attributs download
wird als Dateiname der heruntergeladenen Datei anstelle der Datei verwendet, die verwendet wurde, als sie auf dem Server gespeichert wurde.
Ich habe das Tutorial auf der Symfony-Website bezüglich der Handhabung von Dateiuploads verfolgt. Ich fand es hilfreich, wenn ich herausgefunden habe, wie man einen Download-Link für die Datei erstellt. Ich habe gerade eine Methode zur Document
-Entität namens getDownloadFileName()
hinzugefügt, die nur den Dateinamen zurückgibt, den ich dem Attribut download
zuweisen möchte.
Im Grunde genommen habe ich es so auf der Zweigvorlage meines Symfony-Projekts implementiert
%Vor%