DAY-2 Correctif du code source upload_logo
^proposition du code ci4 upgrade vers une version stable, gestion upload_logo
// IN /root/app/Controllers/Config.php
Catégories
Mots clés
JOUR 2
merci @owlbrudder
explication suivante :
la mise à jour du logo de l'entreprise dans sa version originale fonctionne mais génère deux erreurs critiques dans php 8.2 -- php8.3
je m'explique ho, tout commence par le formulaire info_config.php
lors de la validation de "changer l'image" sur le POST vers la méthode postSaveInfo du contrôleur /root/app/Controllers/Config.php
- $upload_success = !empty($upload_data['erreur']); la variable $upload_success n'est pas chargée ( !isset ) et provoque une erreur critique à la ligne 357 $message = $upload_success ? $message : strip_tags($upload_data['erreur']);
- correctif dans la méthode upload_logo.
- // Informations sur la méthode upload_logo() : si $file->guessExtension() est chargé après la fonction de déplacement, cela ne fonctionne pas ( /tmp/file_tmp est déplacé)
coded
private function upload_logo(): array
{
helper(['form']);
$validation_rule = [
'company_logo' => [
'label' => 'Company logo',
'rules' => [
'uploaded[company_logo]',
'is_image[company_logo]',
'max_size[company_logo,1024]',
'mime_in[company_logo,image/png,image/jpg,image/gif]',
'ext_in[company_logo,png,jpg,gif]',
'max_dims[company_logo,800,680]',
]
]
];
if (!$this->validate($validation_rule))
{
return (['error' => $this->validator->getError('company_logo')]);
}
else
{
$file = $this->request->getFile('company_logo');
$file_info = [
'orig_name' => $file->getClientName(),
'raw_name' => $file->getName(),
'file_ext' => $file->guessExtension(),
'error' => ''
];
if (! $file->hasMoved()) {
$file->move(FCPATH.'uploads/');
$success = $this->appconfig->save(['company_logo' => $file->getClientName()]);
}
return ($file_info);
}
}
the $file_info = [...] block is moved up and an 'error' key is added to initialize the value to empty.
I hope this will be clear enough because I'm doing it with what I have.
bye see you tomorrow
PS // INFOS: https://stackoverflow.com/questions/58728648/how-to-display-uploaded-images-in-codeigniter-4