Comment créer un lien de téléchargement dans Laravel
Je vais avoir des problèmes pour créer un lien de téléchargement pour télécharger des fichiers via une Application Mobile à partir de Laravel dossier de Stockage.
J'ai fait quelque chose comme $link = Response::Download(storage_path()./file/example.png)
mais en vain.
J'ai déplacé le fichier dans le dossier public et utilisé http://domain.com/file/example.png
et asset('file/example.png')
mais en vain.
Je suis 404 NOT FOUND ERROR
Comment puis-je résoudre ce problème?
Voulez-vous lier directement le fichier (dans le dossier public) ou voulez-vous un itinéraire/contrôleur de l'action que les forces de téléchargement?
Un itinéraire/contrôleur n', bro
Un itinéraire/contrôleur n', bro
OriginalL'auteur BlackPearl | 2014-11-17
Vous devez vous connecter pour publier un commentaire.
Prendre un coup d'oeil à la Laravel Aides de la documentation: http://laravel.com/docs/4.2/helpers
Si vous voulez un lien à votre actif, vous pouvez le faire comme ceci:
Modifier
Si la méthode ci-dessus ne fonctionne pas pour vous, alors vous pouvez mettre en œuvre assez simple Téléchargement de l'itinéraire dans app/routes.php qui ressemble à ceci:
Remarque: cet exemple suppose que vos fichiers sont situés dans app/stockage/fichier/ emplacement
Utilisation: http://your-domain.com/download/example.png
Ce sera pour un fichier: application/stockage/fichier/exemple.png (si elle existe, envoyer le fichier au navigateur/client, sinon il va afficher de message d'erreur).
P. S.
'[A-Za-z0-9\-\_\.]+
cette expression régulière assure utilisateur peut seulement demander les fichiers avec le nom contenantA-Z
oua-z
(lettres),0-9
(numéros),-
ou_
ou.
(symboles). Tout le reste est jeté/ignorés. C'est une sécurité /mesure de sécurité....Le lien de travail dans un webbrowser?
Non, il n'est pas.
où est le fichier
file/example.png
sur votre laravel projet? est-il dansapp/sorage
dossier?Réponse de mise à jour. cela pourrait travailler pour vous maintenant.
OriginalL'auteur Latheesan
La mise à jour de réponse pour Laravel 5.0 et au-dessus:
Salut @MutasimFuad la
storage
répertoire n'est pas utilisé pour les biens publics, c'est en fait pour le stockage interne comme vos journaux. Le répertoire vous devez héberger vos biens publics dans/public/
qui est à la racine de votre projet.Salut, @DylanPierce! si je souhaite que les fichiers à être ouvert que par ceux qui sont connecté dans ma demande, dois-je utiliser /public/ trop? (J'ai middleware d'authentification déjà)
non, le public va publiques sur le web n'importe quoi. Vous devez utiliser une combinaison de la Laravel système de fichiers et un itinéraire personnalisé pour vérifier que l'utilisateur dispose de l'autorisation à la ressource, puis utiliser le système de fichiers de le trouver dans
/storage
et l'envoyer à l'utilisateur. Toute ressource publique est ouverte à l'ensemble du web.merci, @DylanPierce !
OriginalL'auteur Dylan Pierce