Position actuelle: Accueil> Derniers articles> image_type_to_extension Quelle est la raison et la solution pour renvoyer la mauvaise extension?

image_type_to_extension Quelle est la raison et la solution pour renvoyer la mauvaise extension?

gitbox 2025-09-17

Dans PHP, Image_Type_To_Extension (int $ image_type, bool $ include_dot = true): String | false est souvent utilisé pour convertir (comme ImageType_png ) en une extension (comme .png ).
Mais dans de vrais projets, de nombreux étudiants feront des commentaires qu'il "a renvoyé la mauvaise extension". Dans la plupart des cas, ce n'est pas que la fonction est erronée, mais qu'il y a un problème avec la méthode d'appel ou le pré-jugement .

Ce qui suit est une explication claire des sources "erronées" courantes, des méthodes de reproduction et des plans de correction.

1. Aperçu des raisons communes

  1. Erreur "Nom de fichier / MIME String / Path Fichier" comme $ Image_Type

    • Image_Type_to_Extension () nécessite des constantes entières ( ImageType_ * ), pas 'Image / Jpeg' , 'xxx.jpg' ou les chemins de fichier.

    • Exemple d'erreur: image_type_to_extension ('image / jpeg') → J'espère retourner .jpg , et j'obtiendrai en fait faux ou une erreur.

  2. La source de valeur de $ image_type est incorrecte

    • Correct Way: Utilisez EXIF_IMAGETYPE ($ FILE) ou GetImageSize (Fichier $) [2] pour obtenir la valeur de type entier .

    • Erreur: passez-le directement à partir de la chaîne mime de $ _files ['type'] (le client peut être forgé) ou finfo_file () .

  3. Les attentes .jpeg et .jpg renvoyées sont incohérentes

    • L'extension de JPEG sur la spécification peut être .jpeg ou .jpg . image_type_to_extension (ImageType_jpeg) renvoie .jpeg par défaut.

    • Si vous utilisez .jpg dans votre entreprise, vous devez convertir manuellement un alias.

  4. Le deuxième paramètre $ include_dot est compris inversement

    • Le VRE par défaut renverra une extension pointillée (telle que .png ).

    • Vous n'en avez pas: image_type_to_extension ($ t, false)png .

    • Situation commune: vous ajoutez manuellement un point au chemin d'épissage, et le résultat devient ... png .

  5. La prise en charge GD / Extension ne correspond pas au format attendu

    • Certains types (tels que WebP, AVIF) nécessitent une prise en charge correspondante de version GD / Imagick. Bien que Image_Type_To_Extension () puisse donner une extension, les fonctions de sauvegarde ultérieures (telles que ImageWebp ) peuvent ne pas exister ou être indisponibles, ce qui vous fait "penser que l'extension est erronée", qui n'est essentiellement pas prise en charge par le lien de sauvegarde .

    • D'autres types tels que ImageType_WBMP renvoient .wbmp , et de nombreuses personnes pensent à tort que c'est .bmp .

  6. Le contenu est incompatible avec l'extension (la mauvaise fonction est utilisée dans le processus d'écriture)

    • Vous avez détecté que c'était PNG, mais utilisé ImageJPEG () pour l'enregistrer, et rédiger le bitmap dans JPEG, puis a obtenu l'extension .png , et le fichier "Le nom et la réalité ne correspondent pas".

    • Vice versa: assurez-vous que le résultat de détection est cohérent avec la fonction de sauvegarde .

  7. MIME à étendue de la cartographie directe de la cartographie de Finfo_file ()

    • FINFO renvoie des mimes tels que l'image / jpeg . Si vous faites un mappage de chaînes vous-même, vous pouvez utiliser Image / JPEG.jpg , et image_type_to_extension () donnera .jPEG ; Cela semble "faux", mais c'est en fait une cartographie incohérente.

2. Comment obtenir $ IMAGE_TYPE

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'/path/to/uploaded/file'</span></span><span>;

</span><span><span class="hljs-comment">// méthode A:Plus stable</span></span><span>
</span><span><span class="hljs-variable">$type</span></span><span> = @</span><span><span class="hljs-title function_ invoke__">exif_imagetype</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>); </span><span><span class="hljs-comment">// retour IMAGETYPE_* entier ou false</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$type</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">RuntimeException</span></span><span>(</span><span><span class="hljs-string">'Impossible de reconnaître le type d&#39;image'</span></span><span>);
}

</span><span><span class="hljs-comment">// méthode B:getimagesize</span></span><span>
</span><span><span class="hljs-variable">$info</span></span><span> = @</span><span><span class="hljs-title function_ invoke__">getimagesize</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$info</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">RuntimeException</span></span><span>(</span><span><span class="hljs-string">'Pas une image valide'</span></span><span>);
}
</span><span><span class="hljs-variable">$type</span></span><span> = </span><span><span class="hljs-variable">$info</span></span><span>[</span><span><span class="hljs-number">2</span></span><span>]; </span><span><span class="hljs-comment">// Même IMAGETYPE_* Entier</span></span><span>
</span></span>

Ne passez pas ce qui suit directement à image_type_to_extension () :

  • 'Image / Png' (MIME String)

  • 'xxx.jpg' (nom de fichier)

  • '/ path / to / fichier' (path)

3. Extension unifiée: alias et stylisation

De nombreuses équipes espèrent:

  • Jpeg est toujours .jpg (pas .jpeg )

  • Supprimer les points (pour l'épissage)

  • Ajouter un alias pour les types rares

Une petite fonction peut être encapsulée:

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">preferred_extension_from_file</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">string</span></span></span><span> </span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$includeDot</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>): </span><span><span class="hljs-title">string</span></span><span> {
    </span><span><span class="hljs-variable">$type</span></span><span> = @</span><span><span class="hljs-title function_ invoke__">exif_imagetype</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$type</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
        </span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">InvalidArgumentException</span></span><span>(</span><span><span class="hljs-string">'Impossible de reconnaître le type d&#39;image:'</span></span><span> . </span><span><span class="hljs-variable">$file</span></span><span>);
    }

    </span><span><span class="hljs-variable">$ext</span></span><span> = </span><span><span class="hljs-title function_ invoke__">image_type_to_extension</span></span><span>(</span><span><span class="hljs-variable">$type</span></span><span>, </span><span><span class="hljs-variable">$includeDot</span></span><span>);
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$ext</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
        </span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">RuntimeException</span></span><span>(</span><span><span class="hljs-string">'Impossible de cartographier les extensions de type'</span></span><span>);
    }

    </span><span><span class="hljs-comment">// Cas unifié</span></span><span>
    </span><span><span class="hljs-variable">$ext</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-variable">$ext</span></span><span>);

    </span><span><span class="hljs-comment">// Alias ​​de préférence commerciale</span></span><span>
    </span><span><span class="hljs-variable">$map</span></span><span> = [
        </span><span><span class="hljs-comment">// Traitez uniquement ce qui vous tient à cœur“Couvert”différence</span></span><span>
        </span><span><span class="hljs-variable">$includeDot</span></span><span> ? </span><span><span class="hljs-string">'.jpeg'</span></span><span> : </span><span><span class="hljs-string">'jpeg'</span></span><span> =&gt; </span><span><span class="hljs-variable">$includeDot</span></span><span> ? </span><span><span class="hljs-string">'.jpg'</span></span><span> : </span><span><span class="hljs-string">'jpg'</span></span><span>,
        </span><span><span class="hljs-variable">$includeDot</span></span><span> ? </span><span><span class="hljs-string">'.tiff'</span></span><span> : </span><span><span class="hljs-string">'tiff'</span></span><span> =&gt; </span><span><span class="hljs-variable">$includeDot</span></span><span> ? </span><span><span class="hljs-string">'.tif'</span></span><span> : </span><span><span class="hljs-string">'tif'</span></span><span>,
    ];

    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$map</span></span><span>[</span><span><span class="hljs-variable">$ext</span></span><span>] ?? </span><span><span class="hljs-variable">$ext</span></span><span>;
}
</span></span>

usage:

 <span><span><span class="hljs-variable">$ext</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preferred_extension_from_file</span></span><span>(</span><span><span class="hljs-string">'/uploads/a.tmp'</span></span><span>);           </span><span><span class="hljs-comment">// 可能retour .jpg</span></span><span>
</span><span><span class="hljs-variable">$extNoDot</span></span><span> = </span><span><span class="hljs-title function_ invoke__">preferred_extension_from_file</span></span><span>(</span><span><span class="hljs-string">'/uploads/a.tmp'</span></span><span>, </span><span><span class="hljs-literal">false</span></span><span>); </span><span><span class="hljs-comment">// 可能retour jpg</span></span><span>
</span></span>

4. Assurez-vous que le nom et la réalité correspondent au fichier

La détection des types n'est que la première étape, et la chose la plus importante est d'utiliser la bonne fonction d'écriture :

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">save_image_as_detected</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">string</span></span></span><span> </span><span><span class="hljs-variable">$srcPath</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$destDir</span></span><span>): </span><span><span class="hljs-title">string</span></span><span> {
    </span><span><span class="hljs-variable">$type</span></span><span> = @</span><span><span class="hljs-title function_ invoke__">exif_imagetype</span></span><span>(</span><span><span class="hljs-variable">$srcPath</span></span><span>);
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$type</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
        </span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">InvalidArgumentException</span></span><span>(</span><span><span class="hljs-string">'Pas une image valide:'</span></span><span> . </span><span><span class="hljs-variable">$srcPath</span></span><span>);
    }

    </span><span><span class="hljs-variable">$ext</span></span><span> = </span><span><span class="hljs-title function_ invoke__">image_type_to_extension</span></span><span>(</span><span><span class="hljs-variable">$type</span></span><span>); </span><span><span class="hljs-comment">// comme .png / .jpeg / .webp</span></span><span>
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$ext</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
        </span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">RuntimeException</span></span><span>(</span><span><span class="hljs-string">'Impossible de mapper l&#39;extension'</span></span><span>);
    }

    </span><span><span class="hljs-comment">// Sélectionnez la fonction de sauvegarde correspondante par type</span></span><span>
    </span><span><span class="hljs-keyword">switch</span></span><span> (</span><span><span class="hljs-variable">$type</span></span><span>) {
        </span><span><span class="hljs-keyword">case</span></span><span> IMAGETYPE_JPEG:
            </span><span><span class="hljs-variable">$im</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromjpeg</span></span><span>(</span><span><span class="hljs-variable">$srcPath</span></span><span>);
            </span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>(</span><span><span class="hljs-string">'img_'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>) . </span><span><span class="hljs-string">'.jpg'</span></span><span>; </span><span><span class="hljs-comment">// Préférences commerciales:utiliser .jpg</span></span><span>
            </span><span><span class="hljs-title function_ invoke__">imagejpeg</span></span><span>(</span><span><span class="hljs-variable">$im</span></span><span>, </span><span><span class="hljs-variable">$destDir</span></span><span> . </span><span><span class="hljs-string">'/'</span></span><span> . </span><span><span class="hljs-variable">$filename</span></span><span>, </span><span><span class="hljs-number">90</span></span><span>);
            </span><span><span class="hljs-keyword">break</span></span><span>;

        </span><span><span class="hljs-keyword">case</span></span><span> IMAGETYPE_PNG:
            </span><span><span class="hljs-variable">$im</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-variable">$srcPath</span></span><span>);
            </span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>(</span><span><span class="hljs-string">'img_'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>) . </span><span><span class="hljs-string">'.png'</span></span><span>;
            </span><span><span class="hljs-comment">// Pour petit volume:Ouvrir Alpha,Définir la compression</span></span><span>
            </span><span><span class="hljs-title function_ invoke__">imagesavealpha</span></span><span>(</span><span><span class="hljs-variable">$im</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
            </span><span><span class="hljs-title function_ invoke__">imagepng</span></span><span>(</span><span><span class="hljs-variable">$im</span></span><span>, </span><span><span class="hljs-variable">$destDir</span></span><span> . </span><span><span class="hljs-string">'/'</span></span><span> . </span><span><span class="hljs-variable">$filename</span></span><span>, </span><span><span class="hljs-number">6</span></span><span>);
            </span><span><span class="hljs-keyword">break</span></span><span>;

        </span><span><span class="hljs-keyword">case</span></span><span> IMAGETYPE_GIF:
            </span><span><span class="hljs-variable">$im</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromgif</span></span><span>(</span><span><span class="hljs-variable">$srcPath</span></span><span>);
            </span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>(</span><span><span class="hljs-string">'img_'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>) . </span><span><span class="hljs-string">'.gif'</span></span><span>;
            </span><span><span class="hljs-title function_ invoke__">imagegif</span></span><span>(</span><span><span class="hljs-variable">$im</span></span><span>, </span><span><span class="hljs-variable">$destDir</span></span><span> . </span><span><span class="hljs-string">'/'</span></span><span> . </span><span><span class="hljs-variable">$filename</span></span><span>);
            </span><span><span class="hljs-keyword">break</span></span><span>;

        </span><span><span class="hljs-keyword">case</span></span><span> IMAGETYPE_WEBP:
            </span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-string">'imagecreatefromwebp'</span></span><span>) || !</span><span><span class="hljs-title function_ invoke__">function_exists</span></span><span>(</span><span><span class="hljs-string">'imagewebp'</span></span><span>)) {
                </span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">RuntimeException</span></span><span>(</span><span><span class="hljs-string">'actuel GD Non pris en charge WebP'</span></span><span>);
            }
            </span><span><span class="hljs-variable">$im</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromwebp</span></span><span>(</span><span><span class="hljs-variable">$srcPath</span></span><span>);
            </span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-title function_ invoke__">uniqid</span></span><span>(</span><span><span class="hljs-string">'img_'</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>) . </span><span><span class="hljs-string">'.webp'</span></span><span>;
            </span><span><span class="hljs-title function_ invoke__">imagewebp</span></span><span>(</span><span><span class="hljs-variable">$im</span></span><span>, </span><span><span class="hljs-variable">$destDir</span></span><span> . </span><span><span class="hljs-string">'/'</span></span><span> . </span><span><span class="hljs-variable">$filename</span></span><span>, </span><span><span class="hljs-number">85</span></span><span>);
            </span><span><span class="hljs-keyword">break</span></span><span>;

        </span><span><span class="hljs-keyword">default</span></span><span>:
            </span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">RuntimeException</span></span><span>(</span><span><span class="hljs-string">'暂Non pris en charge的图片类型:'</span></span><span> . </span><span><span class="hljs-variable">$type</span></span><span>);
    }

    </span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$im</span></span><span>);
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span>;
}
</span></span>

Points clés:

  • Le résultat de détection correspond à la fonction de sauvegarde (PNG → ImagePng , JPEG → ImageJPEG …).

  • Si l'équipe est Unified.jpg , vous pouvez convertir des alias lors de la génération de noms de fichiers , qui n'influence pas avec la valeur de retour de l'image_type_to_extension () .

5. La bonne posture pour collaborer avec Finfo

Si vous êtes plus habitué à prendre MIME en premier, puis à vous étendre, vous pouvez maintenir votre propre table de mappage de haute qualité au lieu de lancer MIME directement sur image_type_to_extension () :

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">ext_from_mime</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">string</span></span></span><span> </span><span><span class="hljs-variable">$mime</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$includeDot</span></span><span> = </span><span><span class="hljs-literal">true</span></span><span>): ?</span><span><span class="hljs-title">string</span></span><span> {
    </span><span><span class="hljs-built_in">static</span></span><span> </span><span><span class="hljs-variable">$map</span></span><span> = [
        </span><span><span class="hljs-string">'image/jpeg'</span></span><span> =&gt; </span><span><span class="hljs-string">'jpg'</span></span><span>,   </span><span><span class="hljs-comment">// Préférences commerciales</span></span><span>
        </span><span><span class="hljs-string">'image/png'</span></span><span>  =&gt; </span><span><span class="hljs-string">'png'</span></span><span>,
        </span><span><span class="hljs-string">'image/gif'</span></span><span>  =&gt; </span><span><span class="hljs-string">'gif'</span></span><span>,
        </span><span><span class="hljs-string">'image/webp'</span></span><span> =&gt; </span><span><span class="hljs-string">'webp'</span></span><span>,
        </span><span><span class="hljs-string">'image/bmp'</span></span><span>  =&gt; </span><span><span class="hljs-string">'bmp'</span></span><span>,
        </span><span><span class="hljs-string">'image/x-ms-bmp'</span></span><span> =&gt; </span><span><span class="hljs-string">'bmp'</span></span><span>,
        </span><span><span class="hljs-string">'image/tiff'</span></span><span> =&gt; </span><span><span class="hljs-string">'tif'</span></span><span>,
        </span><span><span class="hljs-string">'image/svg+xml'</span></span><span> =&gt; </span><span><span class="hljs-string">'svg'</span></span><span>,
        </span><span><span class="hljs-string">'image/vnd.microsoft.icon'</span></span><span> =&gt; </span><span><span class="hljs-string">'ico'</span></span><span>,
    ];
    </span><span><span class="hljs-variable">$ext</span></span><span> = </span><span><span class="hljs-variable">$map</span></span><span>[</span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-variable">$mime</span></span><span>)] ?? </span><span><span class="hljs-literal">null</span></span><span>;
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$ext</span></span><span> === </span><span><span class="hljs-literal">null</span></span><span>) </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-literal">null</span></span><span>;
    </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$includeDot</span></span><span> ? (</span><span><span class="hljs-string">'.'</span></span><span> . </span><span><span class="hljs-variable">$ext</span></span><span>) : </span><span><span class="hljs-variable">$ext</span></span><span>;
}
</span></span>

Stratégies recommandées :

  • Utilisez exif_imageType () ou getImageSize () → pour obtenir ImageType_ *Image_Type_To_Extension () .

  • Si vous avez besoin d'un style unifié ( .jpg , etc.), faites une couche de mappage d'alias .

  • Utilisez FINFO uniquement si nécessaire et utilisez l'extension d'atterrissage de la table auto-entretenant .

6. Liste de contrôle

  • $ Image_type vient-il d' EXif_imageType () / getImageSize () [2] ?

  • Le chemin MIME / Fichier est-il mal transmis dans Image_Type_To_Extension () ?

  • Comprenez-vous la signification de $ include_dot (DOT doit être avec un point)?

  • L'équipe a-t-elle unifié le style de .jpg / .jpeg ? La cartographie est-elle efficace?

  • La fonction d'écriture correspond-elle au type de détection ( imagejpeg vs imagepng , etc.)?

  • L'environnement prend-il en charge les formats cibles (capacités GD telles que WebP / AVIF)?

  • Merdez-vous .wbmp pour .bmp ?

  • Évitez de faire confiance à $ _files ['type'] (le client peut être forgé)?

7. Conclusion

Image_Type_to_Extension () lui-même est très "honnête". Le soi-disant "renvoi de l'extension d'erreur" est principalement parce que l'entrée n'est pas ImageType_ * , les attentes de l'équipe sont incompatibles avec la spécification ( .jpg vs.jpeg ) , ou le lien d'écriture ne correspond pas au résultat de détection .
En triant le chemin " Get Type correctement → Faire des alias raisonnablement → Faire correspondre la fonction de sauvegarde " et vous pouvez complètement supprimer le problème d'extension.