Inhaltsverzeichnis
Symptome des Problems
Der Grund für das Problem
Lösung
Option 1: Manuelle Kodierungskonvertierung
方案二:修改PHP配置文件
Heim Backend-Entwicklung PHP-Problem Was soll ich tun, wenn ich beim Hochladen von Bildern mit chinesischen Schriftzeichen in PHP eine Fehlermeldung erhalte?

Was soll ich tun, wenn ich beim Hochladen von Bildern mit chinesischen Schriftzeichen in PHP eine Fehlermeldung erhalte?

Apr 11, 2023 am 09:16 AM

Wenn Sie PHP zum Hochladen von Dateien verwenden und der Dateiname chinesische Zeichen enthält, schlägt der Upload möglicherweise fehl. Dies liegt daran, dass im HTTP-Protokoll die chinesischen Zeichen im Dateinamen kodiert werden müssen, um korrekt übertragen zu werden, und PHP diese Kodierung standardmäßig nicht durchführt, was dazu führt, dass der Upload fehlschlägt.

Lassen Sie uns nun besprechen, wie Sie dieses Problem lösen können.

Symptome des Problems

Wenn wir PHP zum Hochladen von Dateien verwenden und der hochgeladene Dateiname chinesische Zeichen enthält, wird beim Hochladen möglicherweise ein Fehler gemeldet. Die Fehlermeldung besteht normalerweise aus einigen unverständlichen, verstümmelten Zeichen, und die Ursache des Fehlers kann nicht liegen deutlich darauf hingewiesen.

Zum Beispiel versuchen wir, eine Datei mit dem Namen „Testbild.jpg“ hochzuladen. Wenn der Dateiname während des Upload-Vorgangs chinesische Zeichen wie „Testbild (Chinesisch).jpg“ enthält, schlägt der Upload möglicherweise fehl und ein Die Fehlermeldung wird wie folgt gemeldet:

rrree

Sie können sehen, dass der Dateiname in der Fehlermeldung verstümmelt ist und die Fehlerursache nicht eindeutig angegeben werden kann.

Der Grund für das Problem

Der Grund für dieses Problem ist, dass im HTTP-Protokoll chinesische Zeichen codiert werden müssen, um korrekt übertragen zu werden. Wenn Sie PHP zum Hochladen von Dateien verwenden, konvertiert PHP den Namen der hochgeladenen Datei standardmäßig in das ISO-8859-1-Kodierungsformat. Chinesische Zeichen sind in der ISO-8859-1-Kodierung nicht enthalten, sodass verstümmelte Zeichen angezeigt werden.

Wenn wir uns die hochgeladene HTTP-Anfrage ansehen, können wir sehen, dass der hochgeladene Dateiname so lautet:

Warning: move_uploaded_file(): Unable to move '/tmp/php12efan' to '/var/www/html/upload/测试图片(中文).jpg'
Nach dem Login kopieren

Sie können sehen, dass der hochgeladene Dateiname in keiner Weise verschlüsselt ist.

Lösung

Es gibt viele Möglichkeiten, dieses Problem zu lösen. Wir bieten hier zwei gängige Lösungen.

Option 1: Manuelle Kodierungskonvertierung

Wir können die Kodierung des hochgeladenen Dateinamens manuell konvertieren, um den richtigen Dateinamen zu erhalten. Der spezifische Vorgang ist wie folgt:

Content-Disposition: form-data; name="file"; filename="测试图片(中文).jpg"
Nach dem Login kopieren

Im obigen Code verwenden wir die Funktion iconv, um den Dateinamen von der UTF-8-Kodierung in die ISO-8859-1-Kodierung zu konvertieren und den richtigen Dateinamen zu erhalten und dann Datei-Upload durchführen. Der Nachteil dieser Methode besteht darin, dass sie relativ umständlich ist und eine manuelle Kodierungskonvertierung erfordert, was nicht praktisch genug ist. iconv函数将文件名从UTF-8编码转换为ISO-8859-1编码,得到了正确的文件名,然后再进行文件上传。这种方法的缺点是比较繁琐,需要手动进行编码转换,不够方便。

方案二:修改PHP配置文件

我们可以修改PHP配置文件,让PHP自动进行编码转换,从而避免了手动编码转换的过程。具体操作如下:

  1. 找到php.ini配置文件,位置可能会因不同系统而有所不同。
  2. 打开php.ini文件,找到以下两行:

    $file = $_FILES['file'];
    
    $filename = iconv('UTF-8', 'ISO-8859-1', $file['name']);
    
    move_uploaded_file($file['tmp_name'], '/var/www/html/upload/' . $filename);
    Nach dem Login kopieren
  3. ; Default charset for auto content type.这一行的后面添加以下内容:

    ; Default charset for auto content type. 
    ; http://php.net/default-charset 
    default_charset = "UTF-8"
    Nach dem Login kopieren
  4. 保存php.ini文件,重启Web服务器。

通过以上操作,我们就成功修改了PHP的配置文件,让PHP自动进行编码转换,解决了上传带中文的图片报错的问题。这种方法比较方便,但是需要注意的是,在使用此方法之前,需要确保服务器上已经安装了Suhosin

Option 2: PHP-Konfigurationsdatei ändern

Wir können die PHP-Konfigurationsdatei ändern und PHP die Kodierungskonvertierung automatisch durchführen lassen, wodurch der Prozess der manuellen Kodierungskonvertierung vermieden wird. Die spezifischen Vorgänge sind wie folgt:

  1. Suchen Sie die Konfigurationsdatei php.ini. Der Speicherort kann je nach System variieren.
  2. Öffnen Sie die Datei php.ini und suchen Sie nach den folgenden zwei Zeilen: 🎜
    ; Add charset=utf-8 to Content-Type header for files with non-ASCII names
    ; that have been encoded using RFC 2231
    suhosin.upload.unicode.semantics=1
    Nach dem Login kopieren
  3. 🎜Fügen Sie nach der Zeile ; Default charset for auto content type. hinzu Der folgende Inhalt: 🎜rrreee
  4. Speichern Sie die php.ini-Datei und starten Sie den Webserver neu.
🎜Durch die oben genannten Vorgänge haben wir die PHP-Konfigurationsdatei erfolgreich geändert, sodass PHP die Kodierungskonvertierung automatisch durchführen kann, und das Fehlerproblem beim Hochladen von Bildern mit chinesischen Schriftzeichen gelöst. Diese Methode ist bequemer, es sollte jedoch beachtet werden, dass Sie vor der Verwendung dieser Methode sicherstellen müssen, dass die Erweiterung Suhosin auf dem Server installiert wurde. 🎜🎜Zusammenfassung🎜🎜Wenn Sie PHP zum Hochladen von Dateien verwenden und der Name der hochgeladenen Datei chinesische Zeichen enthält, kann es zu einem Upload-Fehler kommen. Um dieses Problem zu lösen, können Sie die Kodierungskonvertierung manuell durchführen oder die PHP-Konfigurationsdatei ändern und PHP die Kodierungskonvertierung automatisch durchführen lassen. Beide Methoden haben ihre eigenen Vor- und Nachteile, und Sie können die geeignete Methode zur Lösung des Problems auswählen tatsächliche Situation. 🎜

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn ich beim Hochladen von Bildern mit chinesischen Schriftzeichen in PHP eine Fehlermeldung erhalte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. Mar 25, 2025 am 10:37 AM

Die JIT -Kompilierung von PHP 8 verbessert die Leistung, indem häufig ausgeführte Code in den Maschinencode zusammengestellt wird, um Anwendungen mit schweren Berechnungen zugute und die Ausführungszeiten zu reduzieren.

OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. Mar 26, 2025 pm 04:13 PM

In dem Artikel werden OWASP Top 10 Schwachstellen in PHP- und Minderungsstrategien erörtert. Zu den wichtigsten Problemen gehören die Injektion, die kaputte Authentifizierung und XSS mit empfohlenen Tools zur Überwachung und Sicherung von PHP -Anwendungen.

PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. Mar 26, 2025 pm 04:18 PM

In dem Artikel wird das Sicherung von PHP -Dateien -Uploads erläutert, um Schwachstellen wie die Code -Injektion zu verhindern. Es konzentriert sich auf die Dateitypvalidierung, den sicheren Speicher und die Fehlerbehandlung, um die Anwendungssicherheit zu verbessern.

PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. Mar 25, 2025 pm 03:12 PM

In dem Artikel wird die symmetrische und asymmetrische Verschlüsselung in PHP erörtert und ihre Eignung, Leistung und Sicherheitsunterschiede verglichen. Die symmetrische Verschlüsselung ist schneller und für Massendaten geeignet, während asymmetrisch für den sicheren Schlüsselaustausch verwendet wird.

PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. Mar 25, 2025 pm 03:06 PM

In dem Artikel wird die Implementierung einer robusten Authentifizierung und Autorisierung in PHP erörtert, um den nicht autorisierten Zugriff zu verhindern, Best Practices zu beschreiben und sicherheitsrelevante Tools zu empfehlen.

PHP -CSRF -Schutz: Wie Sie CSRF -Angriffe verhindern. PHP -CSRF -Schutz: Wie Sie CSRF -Angriffe verhindern. Mar 25, 2025 pm 03:05 PM

In dem Artikel werden Strategien erörtert, um CSRF-Angriffe in PHP zu verhindern, einschließlich der Verwendung von CSRF-Token, selben Cookies und ordnungsgemäßem Sitzungsmanagement.

Wie rufen Sie Daten mit PHP aus einer Datenbank ab? Wie rufen Sie Daten mit PHP aus einer Datenbank ab? Mar 20, 2025 pm 04:57 PM

In Artikel wird das Abrufen von Daten aus Datenbanken mithilfe von PHP, die Schritte, Sicherheitsmaßnahmen, Optimierungstechniken und gemeinsame Fehler bei Lösungen erfasst.

Was ist der Zweck von vorbereiteten Aussagen in PHP? Was ist der Zweck von vorbereiteten Aussagen in PHP? Mar 20, 2025 pm 04:47 PM

Vorbereitete Aussagen in PHP erhöhen die Sicherheit und Effizienz der Datenbank durch Verhinderung der SQL -Injektion und Verbesserung der Abfrageleistung durch Zusammenstellung und Wiederverwendung.

See all articles