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