Maison > Article > développement back-end > Pourquoi mon téléchargement CodeIgniter échoue-t-il avec une erreur « Type de fichier non autorisé » malgré une configuration correcte ?
Dans CodeIgniter, lorsque vous tentez de télécharger un fichier avec un type non pris en charge, vous pouvez rencontrer le message d'erreur : " Le type de fichier que vous essayez de télécharger n'est pas autorisé." Ce problème est dû à une inadéquation entre l'extension du fichier et son type MIME réel.
Lors de la configuration de la bibliothèque de téléchargement, vous définissez la liste des types de fichiers autorisés à l'aide de l'option Paramètre de configuration autorisé_types. Cependant, le problème peut survenir lorsque le serveur interprète l'extension du fichier comme son type MIME.
En particulier, Firefox est connu pour mal interpréter les extensions de fichier et attribuer des types MIME incorrects. Par exemple, il peut interpréter l'extension .wmv d'un fichier WMV comme video/x-ms-wmv. Cela provoque l'échec du téléchargement malgré la configuration correcte dans config/mimes.php.
Pour résoudre ce problème, vous pouvez modifier la méthode _file_mime_type() de la bibliothèque de téléchargement pour afficher le type MIME réel. En ajoutant une ligne après 199 :
<code class="php">$this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die();</code>
Lorsque vous téléchargez ensuite un fichier avec un type MIME incorrectement reconnu, le script mourra et affichera le type MIME correct. Vous pouvez ensuite ajouter ce type à votre configuration config/mimes.php.
N'oubliez pas que les configurations du navigateur ou les paramètres du serveur peuvent avoir un impact sur le comportement de téléchargement. Par conséquent, il vaut la peine de vérifier le comportement sur différents navigateurs et environnements de serveur pour identifier les variations potentielles.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!