Aktueller Standort: Startseite> Neueste Artikel> Image_type_to_extension Was ist der Grund und die Lösung für die Rückgabe der falschen Erweiterung?

Image_type_to_extension Was ist der Grund und die Lösung für die Rückgabe der falschen Erweiterung?

gitbox 2025-09-17

In PHP, Image_type_to_toxextsion (int $ image_type, bool $ include_dot = true): String | Falsch wird häufig zum Konvertieren (wie im Bildetype_Png ) in eine Erweiterung (wie z. B. .png ) verwendet.
Aber in realen Projekten werden viele Schüler das Feedback davon haben, dass es "die falsche Erweiterung zurückgegeben hat". In den meisten Fällen ist es nicht so, dass die Funktion falsch ist, sondern dass es ein Problem mit der Anrufmethode oder der Vorurteilsmarkung gibt.

Das Folgende ist eine klare Erklärung der gemeinsamen "Fehleinschätzung", Reproduktionsmethoden und Korrekturpläne.

1. Überblick über gemeinsame Gründe

  1. Fehler "Dateiname/MIME String/Dateipfad" als $ image_type

    • Image_type_to_extesion () erfordert Integer Constants ( Imagetype_* ), nicht 'Image/JPEG' , 'xxx.jpg' oder Dateipfade.

    • Fehlerbeispiel: Image_type_to_extension ('Image/JPEG') → Ich hoffe, .jpg zurückzugeben, und ich werde tatsächlich falsch oder ein Fehler.

  2. Die Wertquelle von $ image_type ist falsch

    • Richtige Weise: Verwenden Sie exif_imagetype ($ file) oder getTimageSize ($ file) [2], um den Wertgeistentyp zu erhalten.

    • Fehler: Geben Sie es direkt aus der MIME -Zeichenfolge von $ _files ['type'] (Client Caning gefälscht werden) oder finfo_file () übergeben.

  3. Die zurückgegebenen .jpeg- und .jpg -Erwartungen sind inkonsistent

    • Die Erweiterung von JPEG in der Spezifikation kann .jpeg oder .jpg sein. Image_type_to_extesion (Imagetype_jpeg) gibt standardmäßig .jpeg zurück.

    • Wenn Sie .JPG in Ihrem Unternehmen verwenden, müssen Sie Alias ​​manuell konvertieren.

  4. Der zweite Parameter $ include_dot wird umgekehrt verstanden

    • Der Standard -True gibt eine gepunktete Erweiterung zurück (z. B. .png ).

    • Sie haben keine einige: Image_type_to_extsion ($ t, false)png .

    • Gemeinsame Situation: Sie fügen dem Spleißweg manuell einen Punkt hinzu, und das Ergebnis wird ... png .

  5. GD/Erweiterungsunterstützung entspricht nicht dem erwarteten Format

    • Einige Typen (z. B. WebP, AVIF) erfordern die entsprechende Unterstützung für GD/Imagick -Version. Obwohl Image_type_to_extesion () eine Erweiterung ergeben kann, gibt es möglicherweise keine nachfolgenden Speicherfunktionen (z. B. ImageWebp ) oder nicht verfügbar, sodass Sie "denkt, dass die Erweiterung falsch ist", was im Wesentlichen nicht durch den Speicherlink unterstützt wird .

    • Andere Typen wie Imagetype_WBMP retreiben .WBMP , und viele Menschen denken fälschlicherweise .Bmp .

  6. Der Inhalt steht im Widerspruch zur Erweiterung (die falsche Funktion wird im Schreibprozess verwendet)

    • Sie haben festgestellt, dass es sich um PNG handelte, aber ImageJpeg (), um es zu speichern, und die Bitmap in JPEG geschrieben und dann die .png -Erweiterung und die Datei "Name und Realität nicht übereinstimmen" erhalten.

    • Umgekehrt: Stellen Sie sicher, dass das Erkennungsergebnis mit der Speicherfunktion übereinstimmt.

  7. MIME bis erweiterte Direktzuordnungsverzerrung von finfo_file ()

    • Finfo kehrt Mimen wie Image/JPEG zurück. Wenn Sie String -Zuordnungen selbst durchführen, können Sie Image/JPEG.JPG verwenden, und Image_type_to_toxtesion () gibt JPEG ; Es scheint "falsch" zu sein, aber es ist tatsächlich inkonsistente Mapping.

2. So erhalten Sie $ Image_type richtig

 <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">// Verfahren A:Stabiler</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">// zurückkehren IMAGETYPE_* Ganzzahl oder 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">'Bildtyp kann nicht erkennen'</span></span><span>);
}

</span><span><span class="hljs-comment">// Verfahren 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">'Kein gültiges Bild'</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">// Dasselbe IMAGETYPE_* Ganze Zahl</span></span><span>
</span></span>

Übergeben Sie nicht die folgende direkt an mager_type_to_extension () :

  • 'Image/PNG' (MIME String)

  • 'xxx.jpg' (Dateiname)

  • '/path/to/Datei' (Pfad)

3. Einheitlicher Erweiterung: Alias ​​und Stylisierung

Viele Teams hoffen:

  • JPEG ist immer .jpg (nicht .jpeg )

  • Punkte entfernen (zum Spleißen)

  • Alias ​​für seltene Typen hinzufügen

Eine kleine Funktion kann eingekapselt werden:

 <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">'Bildtyp kann nicht erkennen:'</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">'Erweiterungen vom Typ können nicht abgebildet werden'</span></span><span>);
    }

    </span><span><span class="hljs-comment">// Einheitlicher Fall</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">// Business Preference Alias</span></span><span>
    </span><span><span class="hljs-variable">$map</span></span><span> = [
        </span><span><span class="hljs-comment">// Befassen sich nur mit dem, was Sie interessieren“Gestylt”Unterschied</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>

Verwendung:

 <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">// 可能zurückkehren .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">// 可能zurückkehren jpg</span></span><span>
</span></span>

4. Stellen Sie sicher, dass der Name und die Realität mit der Datei übereinstimmen

Die Erkennung von Typen ist nur der erste Schritt, und das Wichtigste ist, die richtige Schreibfunktion zu verwenden :

 <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">'Kein gültiges Bild:'</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">// wie .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">'Erweiterung kann nicht kartiert werden'</span></span><span>);
    }

    </span><span><span class="hljs-comment">// Wählen Sie die entsprechende speicherische Funktion nach Typ aus</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">// Geschäftspräferenzen:verwenden .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">// Für ein kleines Volumen:Offen Alpha,Komprimierung einstellen</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">'aktuell GD Nicht unterstützt 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">'暂Nicht unterstützt的图片类型:'</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>

Schlüsselpunkte:

  • Das Erkennungsergebnis entspricht der Speicherfunktion (PNG → ImagePng , JPEG → ImageJpeg …).

  • Wenn das Team Unified.jpg ist, können Sie Alias ​​beim Generieren von Dateinamen konvertieren, was nicht mit dem Rückgabewert von Image_type_to_extension () widerspricht.

5. Die richtige Haltung für die Zusammenarbeit mit Finfo

Wenn Sie mehr daran gewöhnt sind, MIME zuerst zu nehmen und dann zu erweitern, können Sie Ihre eigene hochwertige Zuordnungstabelle beibehalten, anstatt MIME direkt auf Image_type_to_toxtesion () zu werfen:

 <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">// Geschäftspräferenzen</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>

Empfohlene Strategien :

  • Verwenden Sie exif_imagetype () oder getImageSize () →, um imagetype_*image_type_to_extsion () zu erhalten.

  • Wenn Sie einen einheitlichen Stil ( .JPG usw.) benötigen, erstellen Sie eine Schicht von Alias ​​Mapping .

  • Verwenden Sie FINFO nur bei Bedarf und verwenden Sie die Lande-Tisch -Landungserweiterung.

6. Checkliste

  • Kommt $ image_type von exif_imagetype () / getImageSize () [2] ?

  • Wird der Mime/Dateipfad in magere_type_to_extsion () falsch übertragen?

  • Verstehen Sie die Bedeutung von $ include_dot (dot muss mit einem Punkt zusammen sein)?

  • Hat das Team den Stil von .jpg / .jpeg vereint? Ist die Zuordnung wirksam?

  • Stimmt die Schreibfunktion mit dem Erkennungstyp überein ( ImageJpeg vs ImagePng usw.)?

  • Unterstützt die Umgebung Zielformate (GD -Funktionen wie WebP/AVIF)?

  • Verwechseln Sie .wbmp für .bmp ?

  • Vermeiden Sie es, $ _files ['Typ'] zu vertrauen (Client kann gefälscht werden)?

7. Schlussfolgerung

Image_type_to_extesion () selbst ist sehr "ehrlich". Die sogenannte "Rückgabe der Fehlererweiterung" liegt hauptsächlich daran , dass die Eingabe nicht imagetype_* ist .
Durch die Aussortierung des Pfades " Geben Sie den Typ richtig ab → Aliase ein vernünftigem → Übereinstimmung der Funktion " übereinstimmen "und Sie können das Erweiterungsproblem vollständig entfernen.