上传.csv文件时,laravel 5中的VerifyCsrfToken.php第53行中的TokenMismatchException

时间:2016-02-08 14:25:40

标签: php laravel-5

我正在读取csv文件并将内容发送到数据库。即使我尝试提及csrf令牌,我也会收到tokenmismatch错误。

2 个答案:

答案 0 :(得分:0)

在您的视图中尝试以下代码段:

<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">

<input type="hidden" name="_token" value="{{ csrf_token() }}">

如果那不起作用,请注释这一行:

\App\Http\Middleware\VerifyCsrfToken::class
在app / Http / Kernel.php文件中

由于此VerifyCsrfToken中间件可以轻松保护您的应用程序免受跨站点请求伪造(CSRF)攻击。 不建议对该行进行评论,但出于测试目的,您可以这样做。

看,如果有效。

答案 1 :(得分:0)

CSRF令牌仅放置在处理表单提交的路由上。我认为您可能正在阅读CSV并保存在不要求您提交CSRF令牌的数据库中,我建议将该路由放置在禁用CSRF令牌的位置,这样它就不需要您提交CSRF令牌。你可以通过做这样的事情来做到这一点。

在App / Http / Midlleware文件夹中,转到VerifyCsrfToken.php,并按如下方式包含指向异常的特定路由:

/**
 * The URIs that should be excluded from CSRF verification.
 *
 * @var array
 */
protected $except = [
    'csvParserRoute',
];

这将仅禁用此路由的CSRF令牌要求,错误应该消失。