如何在laravel上找到我的控制器/方法?

如何在laravel上找到我的控制器/方法?,laravel,Laravel,控制台上出现错误:404(未找到) 我没有通过表单进行post调用到达控制器/方法 我正在尝试上载用户的文件,然后将其保存在项目中的文件夹中 这是工作,但idk为什么不现在 <form action="upload" id="upload" method="post" enctype="multipart/form-data"> <input type="file" name="file[]" multiple> <b

控制台上出现错误:404(未找到)

我没有通过表单进行post调用到达控制器/方法

我正在尝试上载用户的文件,然后将其保存在项目中的文件夹中

这是工作,但idk为什么不现在

<form action="upload" id="upload" method="post" enctype="multipart/form-data">
                        <input type="file" name="file[]" multiple> <br /><br />
                        {{ csrf_field() }}
                        <input type="submit" class="btn btn-primary">    
                    </form> 

                    <script>
                        var form = document.getElementById('upload');
                        var request = new XMLHttpRequest();

                        form.addEventListener('submit', function(e){
                            e.preventDefault();
                            var formdata = new FormData(form);

                            request.open('post', '/upload');
                            request.addEventListener("load", transferComplete);
                            request.send(formdata);
                        });

                        function transferComplete(data){
                            console.log(data.currentTarget.response);
                        }
                    </script>
上载控制器:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

use Storage;

class UploadController extends Controller
{
    public function upload(Request $request){
        $files = $request->file('file');

        if(!empty($files)){
            foreach ($files as $file) {
                Storage::put('xml/'.$file->getClientOriginalName(), file_get_contents($file));
            }
        }
        include base_path('storage/app/TAYCO-procesa-XML_emitidos.php');
    }
    public function upload2(Request $request){
        $files = $request->file('file2');

        if(!empty($files)){
            foreach ($files as $file) {
                Storage::put('xml/'.$file->getClientOriginalName(), file_get_contents($file));
            }
        }
        include base_path('storage/app/TAYCO-procesa-XML_recibidos.php');
    }
}

您必须使用
get
路径显示表单,使用
post
路径发布表单。 将此行添加到您的路线:

web.php

Route::get('upload','UploadController@index');
将此功能添加到您的
UploadController

UploadController.php

公共功能索引(){
返回视图(“您的视图文件的名称及其路径”);
}

你最好给我们看看你的
上传控制器
。对不起,伙计!常规表单提交是否可以代替AJAX(通过删除
)工作?如果将
Route::post('upload'),..
更改为
Route::get(“上传”,然后浏览到
http://localhost/upload
,你还得到404吗?php artisan route:list的输出是什么?
?你有任何干扰中间件吗?谢谢你的回答,但我没有发现显示表单的问题,它们在/Home(route::get(“/Home”)中HomeController@index')->name('home');)我的问题是,当我提交表单并调用/upload路由时,您调用的是
/upload
路由,并且您的路由中必须有
路由::get('upload',…)
,否则,您将得到
404
错误。您必须像我写的那样操作,上载不应该在
HomeController
中。
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Auth;

use Storage;

class UploadController extends Controller
{
    public function upload(Request $request){
        $files = $request->file('file');

        if(!empty($files)){
            foreach ($files as $file) {
                Storage::put('xml/'.$file->getClientOriginalName(), file_get_contents($file));
            }
        }
        include base_path('storage/app/TAYCO-procesa-XML_emitidos.php');
    }
    public function upload2(Request $request){
        $files = $request->file('file2');

        if(!empty($files)){
            foreach ($files as $file) {
                Storage::put('xml/'.$file->getClientOriginalName(), file_get_contents($file));
            }
        }
        include base_path('storage/app/TAYCO-procesa-XML_recibidos.php');
    }
}