【发布时间】:2022-08-23 01:48:36
【问题描述】:
所以我有一个 Laravel 应用程序,由于某种原因 Livewire 没有按照文档处理文件上传。这导致我无法根据大小和/或 mimetype 保存或验证文件。
我已经完全复制了文档 (https://laravel-livewire.com/docs/2.x/file-uploads) 中提供的示例(字面意思是从文档中复制和粘贴),当我上传文件时,我总是得到一个 Livewire/TemporaryUploadedFile 实例,它不会让我验证。在我的实际应用程序中,我需要限制上传文件的文件大小以及类型(.wav、.ogg、.mp4)
为清楚起见,我将从我的文件中复制文件内容 - 但正如我所说,我从给出的示例中复制并粘贴:
-- 上传照片.blade.php
<input type=\"file\" wire:model=\"photo\">
@error(\'photo\') <span class=\"error\">{{ $message }}</span> @enderror
<button type=\"submit\">Save Photo</button>
</form>
-- 上传照片.php
<?php
namespace App\\Http\\Livewire;
use Livewire\\Component;
use Livewire\\WithFileUploads;
class UploadPhoto extends Component
{
use WithFileUploads;
public $photo;
public function updatedPhoto()
{
$this->validate([
\'photo\' => \'image|max:1024\', // 1MB Max
]);
}
public function save()
{
dd($this->photo);
}
public function render()
{
return view(\'livewire.upload-photo\');
}
}
我还做了一个快速截屏来展示实时验证如何无法检测到文件类型:https://www.dropbox.com/s/5981v5gncdcwc7d/2022-03-23_21-25-06.mp4?dl=0
任何帮助,将不胜感激。
谢谢
安东尼
标签: validation file-upload laravel-livewire laravel-9