如何在Laravel中获取文件夹的URL?

时间:2015-03-08 07:51:25

标签: php laravel laravel-4

我创建了一个名为uploads的文件夹,该文件夹与app文件夹位于同一级别。如何使用像URL::to这样的Laravel助手来获取文件路径?

1 个答案:

答案 0 :(得分:2)

虽然上述评论属实(浏览器无法直接访问这些文件) - 您仍然可以通过函数提供对这些文件的链接访问。

诀窍是使用php函数readfile()

这使您可以保护文件并对其应用权限 - 即只有某些用户可以访问这些文件,用户只能访问自己的文件等。

这是允许登录用户访问文件的一种方法示例

这样的路线:

Route::get('/view/{$file}', ['as' => 'viewfile', function($file) {
     // Ensure no funny business names to prevent directory transversal etc.
     $file = str_replace ('..', '', $file);
     $file = str_replace ('/', '', $file);

     // now do the logic to check user is logged in
     if (Auth::check())
     {
            // Serve file via readfile() - we hard code the user_ID - so they
            // can only get to their own files
           readfile('../uploads/'.Auth::user()->id.'/'.$file);
     }
}]);

然后在某个地方的视图文件中,您可以链接到这样的文件:

<p>Here is a link to your file: {{ URL::route('viewfile', ['your_file_name.jpg']) }}</p>