2016-04-30 12 views
2

私はユーザーがファイルをアップロードできるシンプルなフォームを持っています。ファイルはpublic/uploadsディレクトリにアップロードされます。Laravel 5:アップロードされたファイルへのリンク(ルート)を動的に生成

フォームの下には、の公開/アップロードディレクトリ内のすべてのファイルの一覧があります。

だから、ここに私のコントローラメソッドは次のとおりです。

public function store(Request $request) 
{ 
    if ($request->hasFile('file_upload')) { 
     if ($request->file('file_upload')->isValid()) { 
      $request->file('file_upload')->move(public_path().'/uploads/', $request->file('file_upload')->getClientOriginalName()); 
     } 
    } 

    $list_of_files = \File::allFiles(public_path().'/uploads/'); 

    return view('foo', compact('list_of_files')); 
} 

、ここでは、ファイルのリストを表示するビューファイルです:

<ul> 
    @foreach($list_of_files as $file) 
     <li><a href="#">{{ basename($file) }}</a></li> 
    @endforeach 
</ul> 

私はHREFに何を置くべき=」 "それらのファイルへのリンクを持っている必要があります。

+1

ない溶液またはあなたが探しているが、ファイルに名前を付け、他の将来のトラブルの日付(「YmdH:私:s」を)避けるために、これを使用しています「 - 」$。イメージ - > getClientOriginalName(); –

答えて

1

せずに動作するようにリンクを作るために仕事を行う必要があります。

あなたのファイルはuploadsディレクトリに保存されているとします。あなたはそれを好きなように使うでしょう<li><a href="{{ asset('uploads/' . basename($file)) }}">{{ basename($file) }}</a></li>

basename($file)がファイルの名前であることを確認するだけで、リンクをクリックするとファイルに実際に取り込まれるようにするだけです。フルで

<ul> 
    @foreach($list_of_files as $file) 
     <li><a href="{{ asset('uploads/' . basename($file)) }}">{{ basename($file) }}</a></li> 
    @endforeach 
</ul> 
+0

ありがとうございました。私はルートに関するもう1つの_noob_質問を持っています:リンクをクリックするとファイルへのリンクがあります(たとえば、.pdfドキュメントを開くなど)。http:// localhost /uploads/invoice_sale.pdf。 ** routes.php **に定義されているものはありません(** uploads/some_file_name **)。そのようなリンクがうまく動くようにするには、routes.phpで定義する必要があります。つまり、私のウェブサイト上のすべてのURLはroutes.phpで定義されていなければなりません。私の貧しい英語を申し訳ありません。 – PeraMika

+1

ディレクトリがパブリックフォルダ内にある場合は、cssファイルまたはJavaScriptファイルと同じ方法で直接ディレクトリに移動します。ディレクトリがあなたのパブリックフォルダの外にある場合、パブリック/アップロード/請求書にファイルinvoice.pdfが保存されている場合は、ファイル – James

+1

@ PeraMikaの表示またはダウンロードを処理するルートと機能を設定する必要があります。 pdfを使用すると、特定のルートを定義することなく、example.com/uploads/invoice.pdfを使用して、ブラウザで直接ナビゲートすることができます。それは理にかなっていますか? – James

0
href="/public/{{ basename($file) }}" 

は、あなたはあなたの公開ディレクトリへのURLを生成するasset()ヘルパーを使用することができます制限

関連する問題