因此,我有一个Laravel应用程序,出于某种原因,Livewire没有按照文档处理文件上传。这导致我无法保存或验证文件的大小和/或mimetype。
我完全复制了文档(https://laravel-livewire.com/docs/2.x/file-uploads)中提供的示例(从文档中复制和粘贴),当我上传一个文件时,我总是得到一个Livewire/TemporaryUploadedFile实例,它不允许我进行验证。在我的实际应用程序中,我需要限制上传文件的文件大小以及文件类型(.wav、.ogg、.mp4)。
为了清晰起见,我将从文件中复制文件内容--但正如我已经说过的,我复制并粘贴了给出的示例中的文件内容:
-上传-Photo.blde.php
<input type="file" wire:model="photo">
@error('photo') <span class="error">{{ $message }}</span> @enderror
<button type="submit">Save Photo</button>
</form>
-- UploadPhoto.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
任何帮助都会得到认可。
谢谢
安东尼
发布于 2022-10-17 11:39:08
看上去差不多对。现在可以将TemporaryUploadedFile保存到“photos_directory”
public function save()
{
dd($this->photo);
$this->photo->store('photos_directory');
}
https://stackoverflow.com/questions/71594254
复制相似问题