Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php laravel livewire图像格式_Php_Laravel_Laravel Livewire - Fatal编程技术网

Php laravel livewire图像格式

Php 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'.-'.

我有一个表单提交函数,它在正常的控制器中工作得很好,但由于我将函数移到了livewire组件,它返回了错误

错误 代码 错误行已注释

HTML

@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>