我开始学习 Laravel 9 livewire。我正在尝试制作一个图像上传应用程序。我在 Livewire 文档中做了确切的示例,但出现图像无法上传的错误。当我在 Mac 计算机上执行相同的应用程序时,它运行没有任何问题。当我在 Windows 计算机上执行此操作时,它不起作用。
图片上传.php
<?php
namespace App\Http\Livewire;
use Livewire\Component;
use Livewire\WithFileUploads;
class ImegaUpload extends Component
{
use WithFileUploads;
public $photo;
public function save()
{
$this->validate([
'photo' => 'image|max:1024', // 1MB Max
]);
$this->photo->store('photos');
}
public function render()
{
return view('livewire.imega-upload');
}
}
图片上传.blade.php
<div>
<h1>Image upload</h1>
<form wire:submit.prevent="save">
<input type="file" wire:model="photo">
@error('photo')
<span class="error">{{ $message }}</span>
@enderror
<button type="submit">Save Photo</button>
</form>
</div>
我正在执行 Livewire 文档中的示例,但仍然收到错误。甚至没有创建 livewire-temp 文件夹。
最佳答案
看起来你的 PHP.ini 丢失了
sys_temp_dir
和
upload_tmp_dir
取消注释,然后设置其值。
我的例子。
Laragon 在 win 10 上:
sys_temp_dir = "c\laragon\tmp"
upload_tmp_dir = "c\laragon\tmp"
所有临时文件都将转到该位置(不仅仅是上传)
关于Laravel 9 Livewire 照片上传失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74326385/