Php Laravel 5.8 PDF上传
对于我的网站,我需要一个表格,其中包括一个PDF文件上传,但我是这些新的,真的不知道怎么做 这就是我目前得到的,但继续得到: 函数Php Laravel 5.8 PDF上传,php,laravel-5,Php,Laravel 5,对于我的网站,我需要一个表格,其中包括一个PDF文件上传,但我是这些新的,真的不知道怎么做 这就是我目前得到的,但继续得到: 函数App\Http\Controllers\FileController::create()的参数太少,传递了0个,预期正好是1个 控制器: <?php namespace App\Http\Controllers; use App\User; use App\Payment; use Illuminate\Http\Request; use Illumina
App\Http\Controllers\FileController::create()
的参数太少,传递了0个,预期正好是1个
控制器:
<?php
namespace App\Http\Controllers;
use App\User;
use App\Payment;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
class FileController extends Controller
{
public function index(){
$users = User::all();
return view('fileupload.create', compact('users'));
}
protected function create(array $data)
{
$request = app('request');
if($request->hasfile('file')){
$file = $request->file('file');
$filename = $file['filename']->getClientOriginalExtension();
Storage::make($file)->save( public_path('/storage/loonstrookjes/' . $filename) );
dd($filename);
}
return Payment::create([
'file_name' => $filename,
'file_path' => '/storage/loonstrookjes/',
'user_id' => $data['employee'],
]);
return route('fileupload.create');
}
}
我希望有人能帮我找出问题所在,或者找到更好的方法。提前谢谢你
编辑:
你的回答对我帮助很大,但现在我面临另一个问题
控制器现在看起来如下所示:
<?php
namespace App\Http\Controllers;
use App\User;
use App\Payment;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Symfony\Component\HttpFoundation\File\UploadedFile;
UploadedFile::getMaxFilesize();
class FileController extends Controller
{
public function index(){
$users = User::all();
return view('fileupload.create', compact('users'));
}
protected function validator(array $data)
{
return Validator::make($data, [
'filename' => ['required', 'string', 'max:255'],
'file' => ['required', 'file'],
'user_id' => ['required'],
]);
}
protected function create(Request $request)
{
$request = app('request');
if($request->hasfile('file')){
$file = $request->file('file');
$filename = $request->input('filename');
$file = $filename . '.' . $file->getClientOriginalExtension();
$file_path = storage_path('/loonstrookjes');
Storage::disk('local')->putFile($file_path, new File($request->file), $file);
//$path = $request->file('file')->store( storage_path('/storage/loonstrookjes/'));
//$path = Storage::putFile(storage_path('/loonstrookjes/'), $filename);
//dd($upload);
//return $put;
}
return Payment::create([
'file_name' => $filename,
'file_path' => '/storage/loonstrookjes/',
'user_id' => $request['user'],
]);
return route('fileupload.create');
}
}
路线:
Route::resource('File','FileController');
控制器更改:
public function store(Request $request)
{
if($request->hasfile('file')){
$file = $request->file('file');
$filename = $file['filename']->getClientOriginalExtension();
Storage::make($file)->save( public_path('/storage/loonstrookjes/' . $filename) );
}
return Payment::create([
'file_name' => $filename,
'file_path' => '/storage/loonstrookjes/',
'user_id' => $request->type
]);
return route('fileupload.create');
}
}
视图更改:
form action="{{ route('File.store') }}"
您的问题是您的方法create(array$data)
中有一个参数,但是您只使用{{route('create')}}
发布表单。在这里,您通过此路由调用该方法,而不传递定义的必需参数
基本上,form post方法可以通过这种方式接受请求的值
受保护的函数创建(请求$Request)
因为您已经使用了Request
作为特征
因此,通过此操作,您可以从表单中获取请求的字段值。您不必使用$request=app('request')
因为您已经在参数变量$request
上有了它
万一你想知道
从前端(视图)传递变量
使用{{route('update',$the_variable)}}
发送到后端(路由)
这样,您就可以在路线的最后一个/
之后添加$变量
希望这有帮助。您在哪里调用FileController
类的create
函数?这就是问题所在。您说您的create函数需要一个参数$data才能工作。还有,为什么不将其设置为公共功能?未定义路由[存储]。(查看:F:\xampp\htdocs\EmployeeDash\resources\views\fileupload\create.blade.php)是新错误抱歉,请检查查看文件操作。我有更新视图操作。如果有任何查询,请发表评论。如果工作正常,那么请投票或ans为真…我已经更新了你所说的视图,然后我得到了错误
<?php
namespace App\Http\Controllers;
use App\User;
use App\Payment;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Symfony\Component\HttpFoundation\File\UploadedFile;
UploadedFile::getMaxFilesize();
class FileController extends Controller
{
public function index(){
$users = User::all();
return view('fileupload.create', compact('users'));
}
protected function validator(array $data)
{
return Validator::make($data, [
'filename' => ['required', 'string', 'max:255'],
'file' => ['required', 'file'],
'user_id' => ['required'],
]);
}
protected function create(Request $request)
{
$request = app('request');
if($request->hasfile('file')){
$file = $request->file('file');
$filename = $request->input('filename');
$file = $filename . '.' . $file->getClientOriginalExtension();
$file_path = storage_path('/loonstrookjes');
Storage::disk('local')->putFile($file_path, new File($request->file), $file);
//$path = $request->file('file')->store( storage_path('/storage/loonstrookjes/'));
//$path = Storage::putFile(storage_path('/loonstrookjes/'), $filename);
//dd($upload);
//return $put;
}
return Payment::create([
'file_name' => $filename,
'file_path' => '/storage/loonstrookjes/',
'user_id' => $request['user'],
]);
return route('fileupload.create');
}
}
Route::resource('File','FileController');
public function store(Request $request)
{
if($request->hasfile('file')){
$file = $request->file('file');
$filename = $file['filename']->getClientOriginalExtension();
Storage::make($file)->save( public_path('/storage/loonstrookjes/' . $filename) );
}
return Payment::create([
'file_name' => $filename,
'file_path' => '/storage/loonstrookjes/',
'user_id' => $request->type
]);
return route('fileupload.create');
}
}
form action="{{ route('File.store') }}"