Php Laravel 5.8多上传输入

Php Laravel 5.8多上传输入,php,laravel,file-upload,Php,Laravel,File Upload,我想能够上传多个(动态)文件(pdf) 因此,我有以下布局: 如您所见,表单有4个文件输入字段,但也有2个文本字段,每个文件上传行都有一个复选框。“流程”如下所示: 添加标题和年份 检查要启用的类(Initiatie、Retreatie、Toersime和Sport)(并上传PDF) 每堂课上传一个PDF文件 这些文件是PDF文件(每类1个)。我用PHP尝试了下面的代码来上传文件,但是我一次只能上传一个,有时是两个,这取决于文件的大小 public function postGapersrit

我想能够上传多个(动态)文件(pdf)

因此,我有以下布局:

如您所见,表单有4个文件输入字段,但也有2个文本字段,每个文件上传行都有一个复选框。“流程”如下所示:

  • 添加标题和年份
  • 检查要启用的类(Initiatie、Retreatie、Toersime和Sport)(并上传PDF)
  • 每堂课上传一个PDF文件
  • 这些文件是PDF文件(每类1个)。我用PHP尝试了下面的代码来上传文件,但是我一次只能上传一个,有时是两个,这取决于文件的大小

    public function postGapersritAddResults(Request $request): RedirectResponse
    {
        // Handle upload
        $path = 'documents/gapersrit/'.$request->get('year').'/results';
    
        foreach (['initiatie', 'recreatie', 'toerisme', 'sport'] as $item) {
            if ($request->hasFile('file_'.$item)) {
                $request->file('file_'.$item)->storeAs($path, $item.'.'.$request->file('file_'.$item)->getClientOriginalExtension(), 'webdav');
            }
        }
    
        // Handle database
        $result = new SiteGapersritResults();
        $result->title = $request->get('title');
        $result->year = $request->get('year');
        $result->initiatie =  filter_var($request->get('active_initiatie'), FILTER_VALIDATE_BOOLEAN);
        $result->recreatie =  filter_var($request->get('active_recreatie'), FILTER_VALIDATE_BOOLEAN);
        $result->toerisme =  filter_var($request->get('active_toerisme'), FILTER_VALIDATE_BOOLEAN);
        $result->sport =  filter_var($request->get('active_sport'), FILTER_VALIDATE_BOOLEAN);
        $result->save();
    
        toastr()->success('Saved the results for year '.$result->year.'.', 'Success', ['timeOut' => 5000]);
        return redirect()->to('admin/gapersrit/results');
    }
    
    如果有人对我如何做到这一点有更好的想法,请帮助我。 理想情况下,我希望选择所有文件并能够一个接一个地上传它们(就像在我的代码中),但由于某种原因,这不起作用,并且在大多数情况下会引发太大的错误,然而,我想我是一次上传一个文件

    编辑
    在php.ini和我的Nginx配置中,上传大小的限制是100M

    编辑2 我的当前代码出现以下错误:

    curl\u exec():CURLOPT\u infle资源已消失,重置为默认值


    完整跟踪:

    这可能是因为上载大小受到服务器的
    php.ini
    配置的限制

    如果您有权访问该文件或php设置,请尝试更改这些值:

    upload_max_filesize = 20M
    post_max_size = 20M
    

    编辑另请参见

    正如您所说,错误是
    curl\u exec():CURLOPT\u infle资源已消失,重置为默认值

    您发布的代码片段不包含任何与
    curl
    相关的内容,问题在于
    saveAs
    函数中的“webdav”磁盘

    查看跟踪,这似乎是
    League\Flysystem\WebDAV\
    包中的一个问题



    上传大小的限制是100米,忘了提一下。好的,但是当上传失败时,你上传的文件有多大?你是否检查错误???错误太大请始终向我们显示所有错误消息不要总结它们,因为所有内容都是有用的我在这里使用
    storeAs()
    函数,但是我不知道我的代码出了什么问题。如果你读对了我的答案,你就会发现你的代码完全没有问题。问题出在'League\Flysystem\WebDAV'包中