Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie die Funktion zum Hochladen einer Datei in PHP

So implementieren Sie die Funktion zum Hochladen einer Datei in PHP

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-08-30 13:18:413038Durchsuche

So implementieren Sie die Funktion zum Hochladen einer Datei in PHP

So implementieren Sie den Datei-Upload in PHP

1. Formularteil

Um Benutzern das Hochladen von Dateien zu ermöglichen, fügen Sie der Deklaration des HTML-Formulars ein Upload-Attribut hinzu:

enctype = 'multipart/form-data'

Die Methode des Formulars muss POST sein.

Die Formularoption MAX_FILE_SIZE ist ein verstecktes Feld Wird verwendet, um die Größe der hochgeladenen Datei zu begrenzen. Sie muss vor dem Dateiformularelement platziert werden und die Einheit ist Byte.

Der Code lautet wie folgt:

<form enctype=&#39;multipart/form-data&#39; id=&#39;aa&#39; name=&#39;aaa&#39; method=&#39;post&#39; action=&#39;xxx.php&#39;> 
<input type=&#39;hidden&#39; name=&#39;MAX_FILE_SIZE&#39; value=&#39;2621114&#39; /> 
<input name=&#39;upload_file&#39; type=&#39;file&#39; /> 
</form>

Verwandte Empfehlungen: „PHP-Einführungs-Tutorial

2 Dateien

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.

Zum Beispiel: Der Kunde hat einen Bildarray-Wert von „aaa.jpg“ wie folgt hochgeladen:

Name „p5pp.jpg“ Der Name der Datei beim Hochladen

Typ „image/ jpeg“ Dateityp

tmp_name „/tmp/phpjksdf“ temporärer Dateiname auf der Serverseite

Fehler Rückgabewert des Upload-Fehlers

Größe 2045 tatsächliche Datei Größe

Die Fehler im obigen Array geben unterschiedliche konstante Werte zurück, wie folgt:

UPLOAD_ERR_OK Es ist kein Fehler aufgetreten, der Datei-Upload war erfolgreich

UPLOAD_ERR_INI_SIZE Die Dateigröße überschreitet die Wert begrenzt durch die Option upload_max_filesize in PHP.INI

UPLOAD_ERR_FORM_SIZE Die Größe der hochgeladenen Datei überschreitet den Optionswert MAX_FILE_SIZE im HTML-Formular. Sie können das Formular $FILES ['up_file']['size'] im Programm überprüfen, um

UPLOAD_ERR_PARTIAL zu verarbeiten. Nur ein Teil der Datei wurde hochgeladen.

UPLOAD_ERR_NO_FILE Der Benutzer hat keine Datei bereitgestellt upload

Spezifische Beispiele für die Post-Upload-Verarbeitung:

Der Code lautet wie folgt:

if(!move_uploaded_file($_FILES[&#39;f&#39;][&#39;tmp_name&#39;],"uploads/".$_FILES[&#39;f&#39;][&#39;name&#39;].".jpg")){ 
echo "error"; 
}

Funktion:

move_uploaded_file verschiebt die hochgeladene temporäre Datei Datei in das angegebene Verzeichnis

Beispiel:

move_uploaded_file('temporärer Dateiname','angegebener Dateipfad')

is_uploaded_file bestimmt, ob die Datei über http Post hochgeladen wird

Beispiel:

Der Code lautet wie folgt:

if(!is_uploaded_file($_FILES[&#39;f&#39;][&#39;tmp_name&#39;])){ 
echo &#39;非法&#39;; 
}

3. Verwandte Parameter

Parameter in php.ini dass PHP das Design hochlädt nach:

file_uploads Ob Datei-Uploads zugelassen werden sollen, standardmäßig EIN.

upload_tmp_dir ist das temporäre Verzeichnis zum Hochladen von Dateien. Wenn nicht angegeben, wird der Standardspeicherort des Systems verwendet.

upload_max_filesize Die maximale Größe der zulässigen hochgeladenen Dateien, der Standardwert ist 2 MB.

post_max_size steuert die maximale Datenmenge, die PHP bei einer Formularübermittlung mit der POST-Methode akzeptieren kann. Wenn Sie PHP-Dateien zum Hochladen verwenden möchten, sollte dieser Wert so geändert werden, dass er größer als upload_max_filesize ist.

max_input_time begrenzt die Zeit in Sekunden für den Datenempfang über POST/GET/PUT-Methoden.

memory_limit Um zu vermeiden, dass die Ausführung von Skripten viel Systemspeicher beansprucht, können Sie in PHP Speichernutzungsgrenzen definieren. Legen Sie diesen Parameter fest, um die maximale Speicherkapazität anzugeben, die ein einzelnes Skript verwenden kann. Diese sollte entsprechend größer als der post_max_size-Wert sein.

max_execution_time wird verwendet, um die Zeit in Sekunden festzulegen, die PHP auf den Abschluss des Skripts wartet, bevor das Skript zwangsweise beendet wird. Diese zweite Option kann Endlosschleifenskripts einschränken, aber diese Funktion kann auch dazu führen, dass der Vorgang fehlschlägt, wenn über einen längeren Zeitraum legitime Aktivitäten stattfinden (z. B. das Hochladen einer großen Datei). In diesem Fall müssen Sie eine Erhöhung dieser Variable in Betracht ziehen.

4. Erwägen Sie das Hochladen mehrerer Dateien

Sie können problemlos mehrere Dateien hochladen, indem Sie das Array $_FILES verwenden. Das Array $_FILES kann alle Dateifeldinhalte im Client-Formular abrufen und somit alle in demselben Formular hochgeladenen Dateien abrufen.

5. Durchbrechen Sie das Upload-Speicherlimit

Methode 1:

Ändern Sie den Wert „memory_limit“ in php.ini auf einen größeren Wert, z 64M

Methode 2:

Verwenden Sie die Apache Rewrite-Methode, um den Wert von „memory_limit“ dynamisch zu ändern. Erstellen Sie zunächst eine .htaccess-Datei und speichern Sie diese im aktuellen Verzeichnis des Datei-Upload-Programms.

Der Code lautet wie folgt:

php_value memory_limit 100M 
php_value post_max_size 30M 
php_value upload_max_filesize 30M 
php_value max_execution_time 300 
php_value max_input_tim 300 
php_value display_errors On

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Funktion zum Hochladen einer Datei in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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