Laravel 5 - Wie kann ich auf Bilder zugreifen, die in View hochgeladen wurden?
Habe ich Benutzer Avatare hochgeladen Laravel-Speicher. Wie kann ich Zugang zu Ihnen und machen Sie in einer Ansicht?
Den server verweist alle Anfragen an /public
, also, wie kann ich Ihnen zeigen, wenn Sie in der /storage
Ordner?
InformationsquelleAutor der Frage Tadeáš Jílek | 2015-05-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den besten Ansatz ist die Erstellung einer symbolischen link wie @SlateEntropy sehr gut darauf hingewiesen, in die Antwort unten. Um dabei zu helfen, seit version 5.3, Laravel enthält ein Befehl was macht diese unglaublich einfach zu tun:
Erstellt einen symlink von
public/storage
zustorage/app/public
für Sie und das ist alles dort ist zu ihm. Jetzt jede Datei in/storage/app/public
zugegriffen werden kann über einen link wie:Wenn aus irgendeinem Grund können Sie nicht erstellen Sie symbolische links (vielleicht sind Sie auch auf shared-hosting, etc.) oder Sie schützen möchten einige Dateien hinter ein paar access-control-Logik, es gibt die alternative, die eine spezielle route, die liest und dient dem Bild. Zum Beispiel eine einfache Schließung route wie diese:
Können Sie nun auf Ihre Dateien zugreifen wie Sie, würden wenn Sie hatte einen symlink:
Wenn Sie mit der Intervention Image Library können Sie seine eingebaute
response
Methode, die Dinge kurz und bündig:InformationsquelleAutor der Antwort Bogdan
Wäre eine option erstellen Sie eine symbolische Verknüpfung zwischen einem Unterordner in Ihrem Verzeichnis Lagerung und öffentlichen Verzeichnis.
Beispielsweise
Dies ist auch die Methode, die von Envoyer, ein deployment manager-gebaut von Taylor Otwell, der Entwickler von Laravel.
InformationsquelleAutor der Antwort SlateEntropy
Wenn Sie in windows Sie können diesen Befehl ausführen, über cmd:
aus:
http://www.sevenforums.com/tutorials/278262-mklink-create-use-links-windows.html
InformationsquelleAutor der Antwort cabs
Laut Laravel 5.2 docs, Ihre öffentlich zugängliche Dateien sollten im Verzeichnis
Zugänglich zu machen aus dem web, erstellen Sie einen symbolischen link von
public/storage
zustorage/app/public
.Erstellen Sie jetzt aus Ihrer Sicht eine URL zu den Dateien mit den asset-Helfer:
InformationsquelleAutor der Antwort bfcior
Es ist gut, speichern Sie alle privaten Bilder und Dokumente, die in storage-Verzeichnis ist, dann haben Sie die volle Kontrolle über die Datei ether-Sie können bestimmte Art von Benutzer den Zugriff auf die Datei oder einschränken.
getestet auf laravel 5.4
Machen Sie eine route /docs und zeigen Sie auf die entsprechenden controller-Methode
wenn du auf localhost:8000/docs-Datei heruntergeladen werden, falls es keine
Datei muss sich im root/storage/app/Benutzer/Dokumente-Verzeichnis nach obiger code
InformationsquelleAutor der Antwort Syed Shibli
Zuerst müssen Sie erstellen Sie einen symbolischen link für die Lagerung Verzeichnis mit dem artisan-Befehl
Dann in jeder Ansicht können Sie den Zugriff auf Ihre Bild durch url-Helfer wie diese.
InformationsquelleAutor der Antwort Haider Ali
Wenn Sie php benutzen, dann nur bitte verwenden Sie die php symlink-Funktion, wie folgt aus:
symlink('/home/username/projectname/storage/app/public', '/home/username/public_html/storage')
ändern Sie den Benutzernamen und Namen des Projekts, um den richtigen Namen.
InformationsquelleAutor der Antwort dagogodboss