Heim > Artikel > Backend-Entwicklung > Was soll ich tun, wenn der von PHP hochgeladene Dateiname verstümmelt ist?
Lösung für verstümmelte Dateinamen in PHP-Uploads: Öffnen Sie zuerst die Datei „Upload.html“, fügen Sie dann die Anweisung „enctype="multipart/form-data" hinzu und öffnen Sie schließlich die Datei „upload.php“. den Dateinamen einfach transkodieren.
Empfohlen: „PHP-Video-Tutorial“
PHP-Upload-Dateien und verstümmelte chinesische Namen
Informationen zum Hochladen von PHP-Dateien
Auf der Front-End-HTML-Seite sieht das Formular wie folgt aus
Hochladen .html
<!doctype html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="2621114"> <input type="file" required name="upload_file"> <input type="submit" value="提交"> </form> </body> </html>
Beachten Sie, dass
enctype="multipart/form-data" geschrieben werden muss. Dies teilt dem Browser mit, was Sie hochladen
4c889914239751505b70e6f885596636 Frontend-Einstellungen Maximale Dateigröße
backend upload.php
<?php if (is_uploaded_file($_FILES['upload_file']['tmp_name'])){ $upfile = $_FILES['upload_file']; //print_r($upfile); $name = $upfile['name'];//获取文件名 $type = $upfile['type'];//文件类型 $size = $upfile['size'];//文件大小 $tmp_name = $upfile['tmp_name'];//服务器存储的临时名称 $error = $upfile['error'];//错误信息 switch ($type){ case 'image/png': $ok=1; break; case 'image/jpg': $ok=1; break; case 'image/jif': $ok=1; break; case 'image/jpeg': $ok=1; break; } if ($ok && $error == 0){ move_uploaded_file($tmp_name,'./upload/'.iconv("UTF-8", "gbk",$name)); echo '文件上传成功'; }else{ echo '文件上传失败'; } }
Beim Hochladen erhält PHP ein Array mit Informationen über die Datei, die im superglobalen Array $_FILES zu finden sind.
Zum Beispiel: Wenn der Name des Dateieingabefelds im Formular upload_file lautet, sind alle Informationen über die Datei im Array $_FILES['upload_file'] enthalten.
is_uploaded_file – Bestimmen Sie, ob die Datei über HTTP POST hochgeladen wird.
move_uploaded_file – Verschieben Sie die hochgeladene Datei an einen neuen Speicherort ",$name), konvertieren Sie UTF8 in GBK, damit keine verstümmelten Zeichen entstehen
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn der von PHP hochgeladene Dateiname verstümmelt ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!