Heim Backend-Entwicklung PHP-Tutorial Datei-Upload- und Download-Technologie in PHP

Datei-Upload- und Download-Technologie in PHP

May 10, 2023 pm 10:31 PM
文件上传 文件下载 php语言编程

PHP ist eine in der Webentwicklung weit verbreitete Programmiersprache. Sie zeichnet sich durch ihre Einfachheit, einfache Erlernbarkeit, starke Skalierbarkeit und kurze Entwicklungszyklen aus und ist daher bei Entwicklern sehr beliebt. In der Webentwicklung ist das Hoch- und Herunterladen von Dateien eine häufige Anforderung, und PHP bietet einige integrierte Funktionen und Klassen, die uns dabei helfen, diese Funktionen bequem zu implementieren. In diesem Artikel wird die Datei-Upload- und Download-Technologie in PHP vorgestellt.

1. Datei-Upload-Technologie

  1. HTML-Formular

In HTML können wir den Typ des Eingabe-Tags verwenden Erstellen Sie ein Datei-Upload-Formularelement mit dem Attribut „Datei“, wie unten gezeigt:

<form action="upload.php" method="post" enctype="multipart/form-data">
  <input type="file" name="fileToUpload" id="fileToUpload">
  <input type="submit" value="上传文件" name="submit">
</form>
Nach dem Login kopieren

Es ist zu beachten, dass das Formular mit der POST-Methode übermittelt werden muss und das enctype-Attribut festgelegt werden muss zu „multipart/form-data“, damit das Formular das Hochladen von Dateien unterstützen kann. Gleichzeitig müssen wir ein Eingabeelement mit dem Namensattribut „fileToUpload“ erstellen. Dieser Attributwert wird im nachfolgenden PHP-Code verwendet, um die hochgeladene Datei zu erhalten.

  1. PHP-Verarbeitung

Nachdem der Benutzer das Formular zum Hochladen der Datei abgeschickt hat, müssen wir sie im Hintergrund verarbeiten. In PHP können wir das superglobale Array $_FILES verwenden, um die hochgeladenen Dateien abzurufen.

<?php
$target_dir = "./uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

// 检查文件是否是图片
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "File is an image - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "File is not an image.";
    $uploadOk = 0;
  }
}

// 检查文件是否已经存在
if (file_exists($target_file)) {
  echo "Sorry, file already exists.";
  $uploadOk = 0;
}

// 检查文件大小
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "Sorry, your file is too large.";
  $uploadOk = 0;
}

// 允许上传的文件类型
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
    echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
    $uploadOk = 0;
}

// 如果所有检查都通过,上传文件
if ($uploadOk == 0) {
  echo "Sorry, your file was not uploaded.";
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
  } else {
    echo "Sorry, there was an error uploading your file.";
  }
}
?>
Nach dem Login kopieren

Im obigen Code definieren wir zunächst ein Verzeichnis $target_dir zum Speichern hochgeladener Dateien und generieren dann einen Zieldateipfad $target_file basierend auf dem vom Benutzer hochgeladenen Dateinamen und $target_dir. Anschließend haben wir eine Reihe von Prüfungen an der hochgeladenen Datei durchgeführt, wie zum Beispiel:

  • Überprüfen Sie, ob es sich bei der Datei um eine Bilddatei handelt.
  • Überprüfen Sie, ob die Datei bereits vorhanden ist #🎜🎜 #
  • Überprüfen Sie, ob die Dateigröße zu groß ist.
  • Überprüfen Sie, ob der hochgeladene Dateityp zulässig ist.
Zuletzt, wenn alle Prüfungen erfolgreich sind , verwenden wir Die Funktion move_uploaded_file verschiebt die hochgeladene Datei aus dem tmp-Verzeichnis an den durch $target_file angegebenen Speicherort.

2. Datei-Download-Technologie

Das Herunterladen von Dateien erfolgt im Allgemeinen in zwei Arten: Das Herunterladen statischer Dateien (z. B. Bilder, Textdateien, Audio- und Videodateien usw.) .), wobei die eine Methode relativ einfach ist, die andere darin besteht, dynamisch generierte Dateien herunterzuladen, was relativ mühsamer ist.

    Statische Dateien herunterladen
In PHP können wir Dateien über die Funktion header() herunterladen, zum Beispiel: #🎜🎜 #
$file = "./downloads/test.txt";

// 设置HTTP头信息以告诉浏览器下载文件
header("Content-disposition: attachment;filename=".basename($file));
header("Content-type: application/octet-stream");
header("Content-Length: ".filesize($file));
header("Pragma: no-cache");
header("Expires: 0");

// 将文件内容读取并输出给浏览器
readfile($file);
Nach dem Login kopieren
# 🎜🎜#Im obigen Code geben wir zunächst eine Datei $file an und verwenden die Funktion header(), um die HTTP-Header-Informationen festzulegen. Unter diesen gibt Content-Disposition den Namen der heruntergeladenen Datei an, Content-Type gibt den Dateityp an, Content-Length gibt die Dateigröße an und Pragma und Expires werden verwendet, um zu verhindern, dass der Browser die heruntergeladene Datei zwischenspeichert.

Schließlich verwenden wir die Funktion readfile(), um den Inhalt der angegebenen Datei zu lesen und an den Client-Browser auszugeben, wodurch die Funktion zum Herunterladen von Dateien realisiert wird.

Laden Sie dynamisch generierte Dateien herunter

  1. Für dynamisch generierte Dateien müssen wir sie zuerst auf dem Server speichern und sie dann als statische Dateien verwenden Methode zum Herunterladen.
  2. $content = "Hello, world!";
    $filename = "test.txt";
    $file = "./downloads/".$filename;
    
    // 将内容写入到文件中
    $handle = fopen($file, "w");
    fwrite($handle, $content);
    fclose($handle);
    
    // 返回下载文件给客户端
    header("Content-disposition: attachment;filename=".$filename);
    header("Content-type: application/octet-stream");
    header("Content-Length: ".filesize($file));
    header("Pragma: no-cache");
    header("Expires: 0");
    readfile($file);
    
    // 下载完成后删除服务器端的文件
    unlink($file);
    Nach dem Login kopieren
    Im obigen Code speichern wir zunächst die dynamisch generierte Datei $content in einer Datei $filename auf der Serverseite und legen dann die HTTP-Header-Informationen über die Funktion header() fest, um dies dem Client zu ermöglichen Der Browser lädt die Datei herunter. Schließlich verwenden wir die Funktion unlink(), um die Datei auf der Serverseite zu löschen und zu verhindern, dass die Datei serverseitige Ressourcen belegt.

    Zusammenfassung

    Dieser Artikel stellt die Datei-Upload- und Download-Technologie in PHP vor. Diese Funktionen sind sehr praktisch für die Entwicklung von Webanwendungen. Wenn Sie PHP zum Hoch- und Herunterladen von Dateien verwenden, müssen Sie einige Sicherheitsaspekte beachten, z. B. die Überprüfung des Dateityps, der Dateigröße, des Dateinamens usw., um Angriffe durch böswillige Benutzer zu vermeiden. Gleichzeitig sollten wir unser Bestes geben, um die Leistung beim Hoch- und Herunterladen von Dateien zu optimieren, die Verschwendung von Server- und Clientressourcen zu reduzieren und die Benutzererfahrung zu verbessern.

    Das obige ist der detaillierte Inhalt vonDatei-Upload- und Download-Technologie in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Python-Öffnungsvorgang nach dem Herunterladen der Datei Python-Öffnungsvorgang nach dem Herunterladen der Datei Apr 03, 2024 pm 03:39 PM

Python bietet die folgenden Optionen zum Öffnen heruntergeladener Dateien: open()-Funktion: Öffnen Sie die Datei unter Verwendung des angegebenen Pfads und Modus (z. B. „r“, „w“, „a“). Bibliothek anfordern: Verwenden Sie die Methode download(), um automatisch einen Namen zuzuweisen und die Datei direkt zu öffnen. Pathlib-Bibliothek: Verwenden Sie die Methoden write_bytes() und read_text() zum Schreiben und Lesen von Dateiinhalten.

Implementieren Sie das Hoch- und Herunterladen von Dateien in Workerman-Dokumenten Implementieren Sie das Hoch- und Herunterladen von Dateien in Workerman-Dokumenten Nov 08, 2023 pm 06:02 PM

Um das Hochladen und Herunterladen von Dateien in Workerman-Dokumenten zu implementieren, sind spezifische Codebeispiele erforderlich. Einführung: Workerman ist ein leistungsstarkes PHP-Framework für die asynchrone Netzwerkkommunikation, das einfach, effizient und benutzerfreundlich ist. In der tatsächlichen Entwicklung sind das Hochladen und Herunterladen von Dateien häufige Funktionsanforderungen. In diesem Artikel wird erläutert, wie das Workerman-Framework zum Implementieren des Hochladens und Herunterladens von Dateien verwendet wird, und es werden spezifische Codebeispiele aufgeführt. 1. Datei-Upload: Unter Datei-Upload versteht man die Übertragung von Dateien vom lokalen Computer auf den Server. Folgendes wird verwendet

Wie verwende ich PHP-Funktionen zum Hoch- und Herunterladen von Anhängen zum Senden und Empfangen von E-Mails? Wie verwende ich PHP-Funktionen zum Hoch- und Herunterladen von Anhängen zum Senden und Empfangen von E-Mails? Jul 25, 2023 pm 08:17 PM

Wie verwende ich PHP-Funktionen zum Hoch- und Herunterladen von Anhängen zum Senden und Empfangen von E-Mails? Mit der rasanten Entwicklung moderner Kommunikationstechnologie ist E-Mail zu einem wichtigen Mittel für die Kommunikation und Übermittlung von Informationen im täglichen Leben geworden. Bei der Webentwicklung müssen wir häufig E-Mails mit Anhängen senden und empfangen. Als leistungsstarke serverseitige Skriptsprache bietet PHP eine Fülle von Funktionen und Klassenbibliotheken, die den E-Mail-Verarbeitungsprozess vereinfachen können. In diesem Artikel wird erläutert, wie Sie PHP-Funktionen zum Hoch- und Herunterladen von Anhängen zum Senden und Empfangen von E-Mails verwenden. E-Mail wird zuerst gesendet, wir

So verwenden Sie Laravel zum Implementieren von Datei-Upload- und Download-Funktionen So verwenden Sie Laravel zum Implementieren von Datei-Upload- und Download-Funktionen Nov 02, 2023 pm 04:36 PM

So verwenden Sie Laravel zum Implementieren von Datei-Upload- und Download-Funktionen. Laravel ist ein beliebtes PHP-Web-Framework, das eine Fülle von Funktionen und Tools bietet, um die Entwicklung von Webanwendungen einfacher und effizienter zu machen. Eine der am häufigsten verwendeten Funktionen ist das Hoch- und Herunterladen von Dateien. In diesem Artikel wird erläutert, wie Sie mit Laravel Funktionen zum Hoch- und Herunterladen von Dateien implementieren, und es werden spezifische Codebeispiele bereitgestellt. Datei-Upload Unter Datei-Upload versteht man das Hochladen lokaler Dateien auf den Server zur Speicherung. In Laravel können wir den Datei-Upload nutzen

So lösen Sie die Ausnahme beim Hochladen von Java-Dateien (FileUploadException) So lösen Sie die Ausnahme beim Hochladen von Java-Dateien (FileUploadException) Aug 18, 2023 pm 12:11 PM

So lösen Sie eine Java-Datei-Upload-Ausnahme (FileUploadException). Ein Problem, das bei der Webentwicklung häufig auftritt, ist FileUploadException (Datei-Upload-Ausnahme). Dies kann aus verschiedenen Gründen auftreten, z. B. weil die Dateigröße den Grenzwert überschreitet, das Dateiformat nicht übereinstimmt oder eine falsche Serverkonfiguration vorliegt. Dieser Artikel beschreibt einige Möglichkeiten zur Lösung dieser Probleme und stellt entsprechende Codebeispiele bereit. Begrenzen Sie die Größe hochgeladener Dateien. Begrenzen Sie in den meisten Fällen die Dateigröße

Wie verwende ich gRPC, um das Hochladen von Dateien in Golang zu implementieren? Wie verwende ich gRPC, um das Hochladen von Dateien in Golang zu implementieren? Jun 03, 2024 pm 04:54 PM

Wie implementiert man den Datei-Upload mit gRPC? Erstellen Sie unterstützende Servicedefinitionen, einschließlich Anforderungs- und Antwortnachrichten. Auf dem Client wird die hochzuladende Datei geöffnet, in Blöcke aufgeteilt und dann über einen gRPC-Stream an den Server gestreamt. Auf der Serverseite werden Dateiblöcke empfangen und in einer Datei gespeichert. Der Server sendet nach Abschluss des Datei-Uploads eine Antwort, um anzugeben, ob der Upload erfolgreich war.

Wie kann ich den Dateidownload auslösen, wenn ich auf die HTML-Schaltfläche oder auf JavaScript klicke? Wie kann ich den Dateidownload auslösen, wenn ich auf die HTML-Schaltfläche oder auf JavaScript klicke? Sep 12, 2023 pm 12:49 PM

Heutzutage ermöglichen viele Anwendungen Benutzern das Hoch- und Herunterladen von Dateien. Mit Tools zur Plagiatserkennung können Benutzer beispielsweise eine Dokumentdatei hochladen, die Text enthält. Anschließend wird auf Plagiate geprüft und ein Bericht erstellt, den Benutzer herunterladen können. Jeder weiß, wie man mit inputtypefile eine Schaltfläche zum Hochladen von Dateien erstellt, aber nur wenige Entwickler wissen, wie man mit JavaScript/JQuery eine Schaltfläche zum Herunterladen von Dateien erstellt. In diesem Tutorial lernen Sie verschiedene Möglichkeiten kennen, einen Dateidownload auszulösen, wenn auf eine HTML-Schaltfläche oder JavaScript geklickt wird. Verwenden Sie das <a>-Tag und das Download-Attribut von HTML, um den Dateidownload auszulösen, wenn auf die Schaltfläche geklickt wird

Hochladen und Verarbeiten von Dateien in Laravel: Vom Benutzer hochgeladene Dateien verwalten Hochladen und Verarbeiten von Dateien in Laravel: Vom Benutzer hochgeladene Dateien verwalten Aug 13, 2023 pm 06:45 PM

Hochladen und Verarbeiten von Dateien in Laravel: Verwalten von vom Benutzer hochgeladenen Dateien Einführung: Das Hochladen von Dateien ist eine sehr häufige Funktionsanforderung in modernen Webanwendungen. Im Laravel-Framework wird das Hochladen und Verarbeiten von Dateien sehr einfach und effizient. In diesem Artikel wird erläutert, wie Sie von Benutzern hochgeladene Dateien in Laravel verwalten, einschließlich der Überprüfung, Speicherung, Verarbeitung und Anzeige von Datei-Uploads. 1. Datei-Upload Unter Datei-Upload versteht man das Hochladen von Dateien vom Client auf den Server. In Laravel sind Datei-Uploads sehr einfach zu handhaben. Erste,

See all articles