Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.8 PDF上传_Php_Laravel 5 - Fatal编程技术网

Php Laravel 5.8 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

对于我的网站,我需要一个表格,其中包括一个PDF文件上传,但我是这些新的,真的不知道怎么做

这就是我目前得到的,但继续得到:

函数
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') }}"