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
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>
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.
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."; } } ?>
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:
$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);
Laden Sie dynamisch generierte Dateien herunter
$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);
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!