我正在尝试借助HTML表单(刀片文件)和 Maincontroller.php 中的函数上传文件(.csv)。但是,一旦我在上传文件后按下提交按钮,就会显示错误“ Compiled.php中的InvalidArgumentException”,然后显示“未定义路由[/登录]”。
我的 uploadform.blade.php 文件是:
<html>
<body>
<form method="post" action="/upload-file" enctype="multipart/form-data">
<input type="file" name="datafile" />
<button type="submit">Submit!</button>
</form>
</body>
</html>
我的 uploadFile 函数(在 MainController.php 文件中)签名是:
public function uploadFile() {
/* ------------------- */
/* I WANT TO REACH HERE */
/* ------------------- */
}
而且,在路由文件中(即 web.php 文件中)是:
Route::post('/upload-file', 'MainController@uploadFile');
在旁注中,将 post 关键字替换为 get 关键字(在刀片和路由文件中)后, uploadFile 功能正在被触发,但这对我没有用,因为文件上载(以及访问csv文件数据)不适用于GET方法。
答案 0 :(得分:1)
未定义路由[/登录]。
所以在某个地方(很可能在刀片文件中),您遇到了类似route('/login')
的错误,应该是route('login')
。
在整个项目中进行全局搜索以查找/login
并进行修复。 :)
还可以通过在控制台/终端中输入php artisan route:list
来检查此路由是否存在。
| Domain | Method | URI | Name | Action | Middleware |
|--------|-----------|-------|-------|---------------------------------------------------------|------------|
| | GET|HEAD | login | login | App\Http\Controllers\Auth\LoginController@showLoginForm | web,guest |
| | POST | login | login | App\Http\Controllers\Auth\LoginController@login | web,guest |
答案 1 :(得分:1)
我建议您要上传文件,系统需要用户登录。框架会将其重定向到登录路径。
可能您没有Auth路由,这就是为什么得到404的原因。
php artisan make:auth
将添加默认路线和视图
然后添加到routes.php Auth::routes();
(如果不存在)
查看Laravel文档:
https://laravel.com/docs/5.7/authentication#authentication-quickstart
答案 2 :(得分:0)
只需使用 uploadform.blade.php 文件中的 {{csrf_token}} 对其进行修复。认为它不是很明显的解决方案,但已将其修复。 但是,对此表示欢迎解释。 谢谢