Php laravel livewire图像格式
我有一个表单提交函数,它在正常的控制器中工作得很好,但由于我将函数移到了livewire组件,它返回了错误 错误 代码 错误行已注释 HTMLPhp laravel livewire图像格式,php,laravel,laravel-livewire,Php,Laravel,Laravel Livewire,我有一个表单提交函数,它在正常的控制器中工作得很好,但由于我将函数移到了livewire组件,它返回了错误 错误 代码 错误行已注释 HTML @csrf 拯救 有什么想法吗? 更新 在livewire中,您不能$\u文件['attachment']['type']访问此数据进行验证,您可以这样做 $chat=新建BidChat; //其他领域 如果($此->附件){ $attachment=$this->attachment; $filename='chat attachment'.-'.
@csrf
拯救
有什么想法吗?
更新
在livewire中,您不能
$\u文件['attachment']['type']
访问此数据进行验证,您可以这样做
$chat=新建BidChat;
//其他领域
如果($此->附件){
$attachment=$this->attachment;
$filename='chat attachment'.-'.time().$attachment->getClientOriginalExtension();
$location=public_路径('images/'。$filename);
$this->validate([
“附件”=>“图像|模拟:jpeg、png、jpg、gif”,
]);
图像::制作($attachment)->调整大小(1300362)->保存($location);
$chat->attachment=$filename;
}
$chat->save();
ref link您需要像@KamleshPaul这样更改上载文件代码,我想您误解了我的意思,我的问题不是上载,而是要验证所选文件
类型
我需要获取文件类型'image/jpeg'、'image/gif'、'image/png'
如果我的文件是其中的任何一个,那么我需要调整它的大小。但是如果是不同类型的,即zip,我不运行大小调整功能谢谢,但我认为这可能是错误的,我想,正如我在之前的评论中提到的,文件不限于图像,它可以是其他类型,如zip或PDF等。如果是图像,我只需要Image::make
,如果是zip,PDF等。我不需要使用Image::make
`$this->validate()`如果类型不匹配,将抛出错误,因此它不会做出反应Image::make($
这一行确切地说,我不希望它返回错误。我希望允许上传所有文件rar、zip、PDF、docs、doc、xlxs jpg、png、gif,只要是图像大小。这就是我将图像验证与常规laravel验证分离并创建$valid\u图像的原因。
ErrorException
Undefined index: attachment
$chat = new BidChat;
// other fields
if ($this->attachment) {
$attachment = $this->attachment;
$filename = 'chat-attachment' . '-' . time() . '.' . $attachment->getClientOriginalExtension();
$location = public_path('images/' . $filename);
$valid_images = ['image/jpeg','image/gif','image/png'];
if(in_array($_FILES['attachment']['type'], $valid_images)){ <-- error comes from this line
Image::make($attachment)->resize(1300, 362)->save($location);
}
$chat->attachment = $filename;
}
$chat->save();
Livewire\TemporaryUploadedFile {#1559 ▼
+"disk": "local"
#storage: Illuminate\Filesystem\FilesystemAdapter {#1538 ▶}
#path: "livewire-tmp/najcwwb2OMw5wq0khtJp5hvkFfWk36-metaYmlkLWF0dGFjaG1lbnQtMTUzODEwMDQ0MS5wbmc=-.png"
-test: false
-originalName: "najcwwb2OMw5wq0khtJp5hvkFfWk36-metaYmlkLWF0dGFjaG1lbnQtMTUzODEwMDQ0MS5wbmc=-.png"
-mimeType: "application/octet-stream"
-error: 0
#hashName: null
path: "C:\Users\root\AppData\Local\Temp"
filename: "najcwwb2OMw5wq0khtJp5hvkFfWk36-metaYmlkLWF0dGFjaG1lbnQtMTUzODEwMDQ0MS5wbmc=-.png"
basename: "phpBAD0.tmp"
pathname: "C:\Users\root\AppData\Local\Temp\phpBAD0.tmp"
extension: "tmp"
realPath: "C:\laragon\www\mysite\storage\app\livewire-tmp/najcwwb2OMw5wq0khtJp5hvkFfWk36-metaYmlkLWF0dGFjaG1lbnQtMTUzODEwMDQ0MS5wbmc=-.png"
size: 15036
writable: false
readable: false
executable: false
file: false
dir: false
link: false
}
<form wire:submit.prevent="submit" enctype="multipart/form-data" method="post">
@csrf
<input type="file" wire:model="attachment" class="form-control" />
<button class="button btn-block">Save</button>
</form>