Heim  >  Artikel  >  Backend-Entwicklung  >  Senden Sie Dateien in PHP

Senden Sie Dateien in PHP

WBOY
WBOYOriginal
2023-05-24 08:51:221071Durchsuche

PHP ist eine serverseitige Skriptsprache, die zum Verarbeiten von Formulardaten, zum Generieren dynamischer Seiten usw. verwendet werden kann. Ein häufiges Anwendungsszenario ist das Hochladen von Dateien über Formulare. In diesem Artikel wird die Datei-Upload-Funktion in PHP vorgestellt, einschließlich der Verarbeitung von Upload-Formularen, der Speicherung hochgeladener Dateien, der Begrenzung der Art und Größe der hochgeladenen Dateien usw.

1. Verarbeitung von Upload-Formularen

In HTML können Sie ein Formular über das Formular-Tag erstellen und das Attribut „type="file" im Eingabe-Tag verwenden, um das Hochladen von Dateien zu ermöglichen. In PHP können Sie die globale Variable $_FILES verwenden, um Informationen zu hochgeladenen Dateien abzurufen.

Angenommen, unser Formular enthält ein Eingabe-Tag zum Hochladen einer Datei und eine Schaltfläche zum Senden:

2c9ccec1c7569b190d7f2fbc9a3811c4
e1afba264bef770f92ac9a2c4a571c26
6caecc565d8b7cee6b45edb6d3f8121d
f5a47148e367a6035fd7a2faa965022e

Das müssen Sie Achten Sie hier auf mehrere Stellen: Das Attribut

  1. action gibt die Adresse für die Formularübermittlung an, also das Verarbeitungsskript zum Hochladen von Dateien. Hier verwenden wir die Datei upload.php.
  2. Das Methodenattribut gibt die Methode zum Senden des Formulars an. Hier wird die Post-Methode verwendet. Das Attribut
  3. enctype gibt die Kodierungsmethode für Formulardaten an. Wir müssen Multipart/Formulardaten verwenden, um das Hochladen von Dateien zu ermöglichen.

Als nächstes bearbeiten Sie die Datei-Upload-Anfrage in der Datei upload.php.

2. Speicherung hochgeladener Dateien

Zuerst müssen Sie feststellen, ob die hochgeladene Datei existiert. Wenn sie existiert, können Sie die relevanten Informationen der hochgeladenen Datei über das Array $_FILES abrufen:

if(isset($_FILES ["fileToUpload"])) {

$file_name = $_FILES["fileToUpload"]["name"];
$file_tmp = $_FILES["fileToUpload"]["tmp_name"];
$file_size = $_FILES["fileToUpload"]["size"];

}

Unter diesen kann der Dateiname über das Attribut $name, die Dateigröße über das Attribut $size und der Pfad der temporären Datei über abgerufen werden das Attribut $tmp_name.

Als nächstes müssen Sie die hochgeladene Datei in den Zielordner verschieben. Verwenden Sie hier die Funktion move_uploaded_file():

$target_dir = "uploads/";
$target_file = $target_dir ;
if( move_uploaded_file ($file_tmp, $target_file)) {

echo "The file ". basename($file_name). " has been uploaded.";

} else{

echo "Sorry, there was an error uploading your file.";

}

Im obigen Code ist $target_dir das Speicherverzeichnis der hochgeladenen Datei, in dem die Funktion basename() verwendet wird, um die Datei abzurufen Name. Zum Verschieben von Dateien wird die Funktion move_uploaded_file() verwendet, wobei der erste Parameter der temporäre Pfad der Datei und der zweite Parameter der Zielpfad ist. Wenn die Datei erfolgreich verschoben wurde, wird eine erfolgreiche Upload-Nachricht an den Benutzer zurückgegeben; andernfalls wird eine fehlgeschlagene Upload-Nachricht zurückgegeben.

3. Begrenzen Sie die Art und Größe der hochgeladenen Dateien

Um die Sicherheit und Leistung des Upload-Systems zu gewährleisten, müssen wir die hochgeladenen Dateien begrenzen. Dazu gehören sowohl Dateityp als auch Dateigröße.

  1. Dateitypbeschränkungen

Wir verwenden die in_array()-Funktion von PHP, um zu bestimmen, ob der Typ der hochgeladenen Datei legal ist. Insbesondere müssen Sie ein Array von Dateitypen definieren, die hochgeladen werden dürfen, und dann mithilfe der Funktion in_array() ermitteln, ob sich der hochgeladene Dateityp im Array von Dateitypen befindet, die hochgeladen werden dürfen.

$allowed_types = array('jpg', 'jpeg', 'png', 'gif');
$file_type = strtolower(pathinfo($file_name,PATHINFO_EXTENSION));
if(in_array($file_type, $allowed_types) ){

// 合法文件类型

} else{

echo "Sorry, only JPG, JPEG, PNG, GIF files are allowed.";

}

Im obigen Code wird die Funktion pathinfo() verwendet, um den Dateisuffixnamen zu erhalten, die Funktion strtolower() konvertiert ihn in Kleinbuchstaben und die Funktion in_array() wird verwendet, um zu bestimmen, ob es sich um ein Array von Dateitypen handelt, die hochgeladen werden dürfen.

  1. Dateigrößenbeschränkung

Wir verwenden die Datei-Upload-Konfiguration von PHP, um die Größe der hochgeladenen Dateien zu begrenzen, die in der php.ini-Datei festgelegt werden kann, zum Beispiel:

post_max_size=8M
upload_max_filesize=2M

hier post_max_size bedeutet die maximale Länge der POST-Daten, upload_max_filesize gibt die maximale Größe der hochgeladenen Dateien an. Es ist zu beachten, dass das Array $_FILES keine Informationen über die hochgeladene Datei enthält, wenn die Dateigröße den Grenzwert nicht erreicht.

Zusammenfassung:

Die Implementierung der Datei-Upload-Funktion in PHP erfordert die folgenden Schritte:

  1. Erstellen Sie ein Formular mit dem Eingabe-Tag „Datei hochladen“ und der Schaltfläche „Senden“.
  2. Verwenden Sie im Skript zur Verarbeitung hochgeladener Dateien die globale Variable $_FILES, um die Informationen zur hochgeladenen Datei abzurufen.
  3. Verschieben Sie die hochgeladenen Dateien in den Zielordner.
  4. Erzwingen Sie Sicherheits- und Leistungsbeschränkungen für hochgeladene Dateien, einschließlich Dateityp und Dateigröße.

Durch die Implementierung der Funktion zum Hochladen von Dateien mit der oben genannten Methode können unsere Webanwendungen umfangreichere Funktionen und eine bessere Benutzererfahrung erhalten.

Das obige ist der detaillierte Inhalt vonSenden Sie Dateien 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