Dieser Artikel stellt hauptsächlich relevante Informationen zur Interpretation der Verarbeitung hochgeladener Dateien in PHP vor. Er ist sehr gut und hat Referenzwert.
Wir bearbeiten unsere eigenen Informationen im Browser. Sie werden auf das Hochladen von Avataren stoßen, wir werden Dokumente hochladen... Das Wort „hochladen“ existiert überall.
PHP ist die beste Sprache (Programmierer in anderen Sprachen, bitte schlagen Sie mich nicht...). PHP bietet natürliche Vorteile bei der Handhabung von Interaktionen und verfügt natürlich über leistungsstarke Funktionen zur Verarbeitung hochgeladener Dateien.
Ebenso wie die Übermittlung allgemeiner Daten ist auch für das Hochladen von Dateien ein Formular erforderlich. Lassen Sie uns ein spezielles Formular zum Hochladen von Dateien erstellen.
<form enctype="multipart/form-data" action="upload_file.php" name="upload_form" method="post"> <!--MAX_FILE_SIZE必须在所有的input之前,以后要是想用上传表单,可以在form之后就写隐藏的input--> <input type="hidden" name="MAX_FILE_SIZE" value=""/> 上传的文件: <input type="file" name="userfile"/> <input type="submit" name="sub_button" value="上传文件的提交按钮"/> </form>
OK, analysieren wir dieses Code-Snippet.
Der obige Enctype gibt das Codierungsformat an, das beim Senden der Daten an den Server verwendet wird. Es hat drei Werte:
Das versteckte Feld MAX_FILE_SIZE (Einheit ist Bytes) muss vor dem Dateieingabefeld platziert werden und sein Wert ist die maximale Größe der Datei. Dies ist ein Vorschlag für Browser, PHP wird dies auch prüfen. Diese Barriere kann browserseitig umgangen werden. Erwarten Sie also nicht, sie zum Blockieren großer Dateien zu verwenden. Der maximale Dateiwert ist jedoch durch post_max_size= (number) M in php.ini begrenzt. Es ist jedoch besser, dieses Element hinzuzufügen, um zu vermeiden, dass Benutzer lange auf das Hochladen großer Dateien warten und dann feststellen, dass das Hochladen großer Dateien fehlgeschlagen ist.
Nachdem der Benutzer das Dateiformular übermittelt hat, kann der Server die Daten akzeptieren. In PHP gibt es eine globale Variable $_FILES zum Verarbeiten von Dateien. Es wird davon ausgegangen, dass der Name des Upload-Felds userfile ist (kann im Feld beliebig geändert werden).
$_FILES['userfile']['name'] Der ursprüngliche Name der Client-Datei.
$_FILES['userfile']['type'] Der MIME-Typ der Datei. Dies wird auf der PHP-Seite nicht überprüft, daher ist dieser Wert möglicherweise noch nicht vorhanden.
$_FILES['userfile']['size'] Die Größe der hochgeladenen Datei (in Bytes).
$_FILES['userfile']['tmp_name'] Der temporäre Dateiname, der auf der Serverseite gespeichert wird, nachdem die Datei hochgeladen wurde.
$_FILES['userfile']['error'] Der Fehlercode im Zusammenhang mit dem Datei-Upload. Wenn der Upload erfolgreich ist, ist der Wert 0.
Nachdem die Datei hochgeladen wurde, wird sie standardmäßig im temporären Standardverzeichnis des Servers gespeichert und das upload_tmp_dir in php.ini wird auf einen anderen Pfad festgelegt.
Hier müssen wir über eine move_uploaded_file()-Funktion sprechen:
Diese Funktion prüft und stellt sicher, dass die durch Datei angegebene Datei eine legal hochgeladene Datei ist ( d. h. über den HTTP-POST-Upload-Mechanismus von PHP hochgeladen). Wenn die Datei legal ist, wird sie in die durch newloc angegebene Datei verschoben.
Wenn es sich bei der Datei nicht um eine legal hochgeladene Datei handelt, wird kein Vorgang ausgeführt und move_uploaded_file() gibt „false“ zurück.
Wenn es sich bei der Datei um eine legitim hochgeladene Datei handelt, diese aber aus irgendeinem Grund nicht verschoben werden kann, erfolgt keine Aktion und move_uploaded_file() gibt „false“ zurück und es wird eine Warnung ausgegeben.
Diese Prüfung ist besonders wichtig, wenn die hochgeladene Datei dazu führen kann, dass ihr Inhalt dem Benutzer oder anderen Benutzern dieses Systems angezeigt wird.
Das Folgende ist ein Beispiel für eine PHP-Upload-Datei:
<b>上传文件处理</b> <?php if (isset($_FILES['userfile'])) { $uploaddir = 'upload/'; $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); echo '<pre class="brush:php;toolbar:false">'; if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { echo '上传文件成功'.'<br>'; } else { echo '上传文件失败'.'<br>'; } echo '这是上传文件的一些信息:' . '<br>'; print_r($_FILES); echo '<pre class="brush:php;toolbar:false">'; die(); } ?> <b>上传表单</b> <!--表单中的enctype属,必须和以下定义保持一致--> <form enctype="multipart/form-data" action="upload_file.php" name="upload_form" method="post"> <!--MAX_FILE_SIZE必须在所有的input之前,以后要是想用上传表单,可以在form之后就写隐藏的input--> <input type="hidden" name="MAX_FILE_SIZE" value=""/> 上传的文件: <input type="file" name="userfile"/> <hr/> <input type="submit" name="sub_button" value="上传文件的提交按钮"/> </form>
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass es so sein wird hilfreich für das Studium aller.
Verwandte Empfehlungen:
phpMethoden zum Herunterladen verschiedener Dateien basierend auf der Header-Funktion
PHP implementiert die Erstellung und Bildkomprimierungsmethode
phpBeispiel für die gemeinsame Nutzung einzelner Dateien und mehrerer Datei-Uploads
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung von Beispielen für Probleme bei der Verarbeitung hochgeladener Dateien in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!