我有一个Laravel应用程序和一个带有dropzone的表单。
通常,它运作良好。但是当我尝试上传大文件(50M - 60 M)时,我收到此错误TokenMismatchException
。
我正在使用此代码发送令牌:
formData.append("_token", $('[name=_token]').val());
我还更改了所有php.ini设置:
max_upload_size
set_time_limit(0);
memory_limit
post_max_size
max_input_time
如上所述,它适用于小文件。
答案 0 :(得分:3)
我解决了这个问题。这是因为php.ini
文件。我编辑并保存了php.ini
,但它没有影响phpinfo();
函数的输出。输出显示旧值。
请查看此链接以获取解决方案:
Changes to upload_max_filesize in Ubunutu php.ini will not take effect
答案 1 :(得分:0)
如果您更改了所有的PHP设置,那应该不是问题。但是,如果这是通过AJAX完成的,那么在请求中添加_token
会非常麻烦。而是将{{ csrf_token }}
设置为您的请求标头。更具体地说,将其设置在X-CSRF-TOKEN
标头上,因为Laravel会在中间件中检查它。