


Was soll ich tun, wenn ich beim Hochladen von Bildern mit chinesischen Schriftzeichen in PHP eine Fehlermeldung erhalte?
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:
rrreeSie 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'
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"
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自动进行编码转换,从而避免了手动编码转换的过程。具体操作如下:
- 找到php.ini配置文件,位置可能会因不同系统而有所不同。
-
打开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 -
在
; 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 - 保存php.ini文件,重启Web服务器。
通过以上操作,我们就成功修改了PHP的配置文件,让PHP自动进行编码转换,解决了上传带中文的图片报错的问题。这种方法比较方便,但是需要注意的是,在使用此方法之前,需要确保服务器上已经安装了Suhosin
- Suchen Sie die Konfigurationsdatei php.ini. Der Speicherort kann je nach System variieren.
- Ö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 - 🎜Fügen Sie nach der Zeile
; Default charset for auto content type.
hinzu Der folgende Inhalt: 🎜rrreee - Speichern Sie die php.ini-Datei und starten Sie den Webserver neu.
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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.

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.

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.

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.

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.

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.

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

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.
