Laravel 用php代码登录后用php下载文件

Laravel 用php代码登录后用php下载文件,laravel,download,Laravel,Download,我有两个链接 一个用于登录(www.xxx/login/) 一个用于下载文件(www.xxx/download/) 如果已经登录,链接到www.xxx/download/将自动下载文件, 如果没有,页面将重定向到www.xxx/login/ 那么如何编写php代码呢?要先登录,然后转到下载文件如果您正在使用Laravel提供的登录功能,则这是Laravel提供的默认功能 你可以在这里查一下 Illuminate\Foundation\Auth\AuthenticatesUsers 这是trai

我有两个链接 一个用于登录(www.xxx/login/) 一个用于下载文件(www.xxx/download/)

如果已经登录,链接到www.xxx/download/将自动下载文件, 如果没有,页面将重定向到www.xxx/login/


那么如何编写php代码呢?要先登录,然后转到下载文件

如果您正在使用Laravel提供的登录功能,则这是Laravel提供的默认功能

你可以在这里查一下

Illuminate\Foundation\Auth\AuthenticatesUsers
这是
trait
和check函数
sendLoginResponse
。下面是在
sendLoginResponse
函数中编写的代码:-

/**
 * Send the response after the user was authenticated.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
protected function sendLoginResponse(Request $request)
{
    $request->session()->regenerate();

    $this->clearLoginAttempts($request);

    return $this->authenticated($request, $this->guard()->user())
            ?: redirect()->intended($this->redirectPath());
}

如果您使用的是自定义登录功能,请遵循此操作。

您只需要中间件

因此,在控制器顶部添加
\u construct
方法

public function __construct()
    {
        $this->middleware('auth');
    }

    public function dowloadMethod($fileName)
        {
//your code    
        }
如果您在路线中使用
关闭
方法

Route::get('YourdowloadUrl/{fileName}',function($fileName)
{
//yourcode goesrhere
}
)->middleware(['web', 'auth']);

如果你是认真的,请提供你尝试过的代码。您只需将中间件添加到
\u construct
method@Manojkiran.A如果Laravel为我们提供了登录,为什么您更喜欢添加中间件。不要创建新的中间件和外接程序
\uu construct
使用登录重定向到请求的url。如果您创建的控制器没有middlware,则意味着访问您网站的任何用户都可以不受限制地访问任何资源。在上面的问题中,他只需要允许用户authenticated@Manojkiran.A再次阅读问题。他有pdf url,只有经过身份验证的用户才能访问。那个么,若我把url放在
auth
中间件中,那个么任何用户如何访问那个url呢。我想您必须再次阅读这个问题:如果用户登录auth middlleware,则返回true,并且可以访问下一个方法。他要求只有登录的用户需要下载文件,对吗