Fix: PHP fileinfo Extension
Fix: PHP fileinfo Extension
π Problema
``
Unable to guess the MIME type as no guessers are available
(have you enabled the php_fileinfo extension?).
Symfony\Component\Mime\MimeTypes::guessMimeType
Symfony\Component\HttpFoundation\File\File::getMimeType
`
Causa
L'estensione PHP fileinfo non Γ¨ abilitata. Laravel la usa per rilevare il MIME type dei file caricati.---
β
Soluzione: Abilita fileinfo
Opzione A: Via cPanel (Raccomandato)
1. Login cPanel β https://sartup.it:2083
2. Software β Select PHP Version
3. Trova fileinfo nella lista extensions
4. Spunta il checkbox β
5. Click Save
6. Verifica con:
`bash
php -m | grep fileinfo
Output: fileinfo β
`---
Opzione B: Via php.ini
Se hai accesso diretto al file
php.ini:1. Apri
php.ini:
`bash
nano /opt/cpanel/ea-php82/root/etc/php.ini
`2. Trova e decommenta (rimuovi
;):
`ini
;extension=fileinfoDiventa:
extension=fileinfo
`3. Salva e riavvia PHP-FPM:
`bash
systemctl restart ea-php82-php-fpm
`---
Opzione C: Via .user.ini (cPanel)
Se non hai accesso a php.ini, crea
.user.ini nella root:`bash
cd /home/capera/public_html/sartup/public
echo "extension=fileinfo" > .user.ini
`Nota: cPanel potrebbe sovrascrivere questo file.
---
π§ͺ Verifica
Test 1: PHP CLI
`bash
php -m | grep fileinfo
`Output atteso:
`
fileinfo
`Test 2: phpinfo()
Crea file temporaneo:
`bash
cd /home/capera/public_html/sartup/public
echo "<?php phpinfo();" > info.php
`Apri:
https://sartup.it/sartup/public/info.phpCerca "fileinfo" β Deve essere enabled
β οΈ IMPORTANTE: Elimina il file dopo il test!
`bash
rm info.php
`Test 3: Laravel Tinker
`bash
php artisan tinker// Test upload
$file = new \Illuminate\Http\UploadedFile('/path/to/test.csv', 'test.csv');
echo $file->getMimeType();
// Output: text/csv β
`---
π§ Altre Extensions Utili per Laravel
Mentre sei in Select PHP Version, abilita anche:
`
β
fileinfo (per MIME type detection)
β
mbstring (per multibyte strings)
β
pdo_mysql (per database)
β
zip (per composer/export)
β
gd (per image manipulation)
β
curl (per HTTP requests)
β
openssl (per encryption)
β
tokenizer (per Laravel parsing)
β
xml (per XML parsing)
β
bcmath (per precisione numerica)
`---
π Checklist Post-Fix
- [ ] Estensione fileinfo abilitata
- [ ] PHP-FPM riavviato (se necessario)
- [ ] Verificato con
php -m | grep fileinfo`
---
π― Dopo il Fix
Riprova l'upload CSV:
1. Vai su Profili Import 2. Click "Nuovo Profilo" 3. Upload CSV 4. β Dovrebbe funzionare senza errori
---
π Link Utili
---
Fix applicabile in < 5 minuti via cPanel Nessun riavvio server necessario
Analisi Codice
Blocco 1
Unable to guess the MIME type as no guessers are available
(have you enabled the php_fileinfo extension?).
Symfony\Component\Mime\MimeTypes::guessMimeType
Symfony\Component\HttpFoundation\File\File::getMimeType
Blocco 2 bash
php -m | grep fileinfo
# Output: fileinfo β
Blocco 3 bash
nano /opt/cpanel/ea-php82/root/etc/php.ini
Blocco 4 ini
;extension=fileinfo
# Diventa:
extension=fileinfo
Blocco 5 bash
systemctl restart ea-php82-php-fpm
Blocco 6 bash
cd /home/capera/public_html/sartup/public
echo "extension=fileinfo" > .user.ini
Blocco 7 bash
php -m | grep fileinfo
Blocco 8
fileinfo
Blocco 9 bash
cd /home/capera/public_html/sartup/public
echo "<?php phpinfo();" > info.php
Blocco 10 bash
rm info.php
Blocco 11 bash
php artisan tinker
// Test upload
$file = new \Illuminate\Http\UploadedFile('/path/to/test.csv', 'test.csv');
echo $file->getMimeType();
// Output: text/csv β
Blocco 12
β
fileinfo (per MIME type detection)
β
mbstring (per multibyte strings)
β
pdo_mysql (per database)
β
zip (per composer/export)
β
gd (per image manipulation)
β
curl (per HTTP requests)
β
openssl (per encryption)
β
tokenizer (per Laravel parsing)
β
xml (per XML parsing)
β
bcmath (per precisione numerica)