【问题标题】:How to remove uploaded file from property in Laravel Livewire?如何从 Laravel Livewire 的属性中删除上传的文件?
【发布时间】:2022-01-05 03:40:50
【问题描述】:

我正在使用 livewire 上传文件,我的输入模型必须是多个上传的文件,并在提交前向用户显示预览,但由于某种原因,用户想要从文件属性中删除图像或文件,如何我可以这样做吗?

【问题讨论】:

    标签: laravel file-upload laravel-livewire


    【解决方案1】:

    我发现最好的方法是使用 PHP split() 函数删除文件,只需将文件的索引号传递给函数并将其从文件属性数组中删除

    例如: 调用以下方法签证wire:click="1"Livewire.emit('deleteFile','1')

    public function deleteFile($fileIndex)
    {
        if($this->media != null){
            \array_splice($this->media, (int)$mediaURl, 1);
        }else{
            $this->media = null;
        }
    }
    

    但请记住,您必须在方法往返完成后更新前面的每个文件预览索引,您可以通过如下所示的 livewire 组件的调度和浏览器事件来实现这一点

    public function deleteFile($fileIndex)
    {
        if($this->media != null){
            \array_splice($this->media, (int)$mediaURl, 1);
        }else{
            $this->media = null;
        }
        $this->dispatchBrowserEvent('showDeleteBtn');
    }
    

    【讨论】:

      猜你喜欢
      • 2021-04-10
      • 2013-06-27
      • 2017-04-15
      • 2021-02-03
      • 2013-05-19
      • 2018-07-21
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多