【发布时间】:2017-06-16 19:55:45
【问题描述】:
我的表单正在运行,但是当我添加文件时,Laravel 开始下载以下页面:
如果有文件上传,则不调用主控制器函数“上传”。
//##### home.blade.php
<?php
echo Form::open(['route' => 'home.upload', 'files' => true]);
echo Form::text('name', null);
echo '<div class="clear"></div>';
echo Form::label('file', 'Upload File');
echo Form::file('file', null, ['id' => 'file']);
echo '<div class="clear"></div>';
echo Form::submit('Submit!');
echo Form::close();
?>
//##### web.php
Route::post('/upload', [
'as' => 'home.upload',
'uses' => 'Home@upload'
]);
//##### Home.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class Home extends Controller
{
public function index(Request $request)
{
return view('home');
}
public function upload(Request $request)
{
var_dump($request->hasFile('sql'))exit;
}
}
有人知道问题出在哪里吗?
【问题讨论】:
-
提交时的url是什么?
-
浏览器中的 URL 是 / 但 post 请求路由到 /upload。发送文件时类型为 x-httpd-php。没有文件的类型是 html。我认为这是一个问题。
-
我会说它没有发布到正确的路线。在家时可以在浏览器中查看源 html 吗?
-
表单的动作是正确的“/upload”。如果没有要上传的文件,则路由正确并调用 upload() 函数。
-
好的!我知道我没有完全阅读您发布的图片。如果路由是正确的,而您显然没有得到 var_dump,那么正如它所说,它一定是您的服务器有问题。提示是使用 Laravel
dd()而不是var_dump然后exit-dd($request->hasFile('sql'))
标签: php laravel file-upload upload routes