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='multipart/form-data' id='aa' name='aaa' method='post' action='xxx.php'> <input type='hidden' name='MAX_FILE_SIZE' value='2621114' /> <input name='upload_file' type='file' /> </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['f']['tmp_name'],"uploads/".$_FILES['f']['name'].".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['f']['tmp_name'])){ echo '非法'; }
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!