Heim Backend-Entwicklung PHP-Problem So laden Sie Dateien hoch und speichern sie in der Datenbank in PHP

So laden Sie Dateien hoch und speichern sie in der Datenbank in PHP

Apr 06, 2023 am 08:54 AM

Das Hochladen von Dateien ist eine sehr häufige Funktion in modernen Anwendungen, und Webanwendungen bilden da keine Ausnahme. In Webanwendungen müssen wir Benutzern manchmal das Hochladen von Dateien wie Bildern, Dokumenten usw. ermöglichen, und PHP ist eine beliebte serverseitige Skriptsprache, die Datei-Upload-Vorgänge problemlos verarbeiten kann. In diesem Artikel erklären wir, wie man hochgeladene Dateien mit PHP in einer Datenbank speichert.

  1. HTML-Formularvorbereitung

Zunächst benötigen wir ein HTML-Formular, damit der Benutzer die hochzuladende Datei auswählen kann. Wir verwenden das -Element von HTML5, um das Formular zu erstellen. Der HTML-Code lautet wie folgt:

<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

Das Aktionsattribut im Formular-Tag gibt die URL des Datei-Upload-Verarbeitungsskripts und das Methodenattribut an Gibt die zu verwendende HTTP-Methode an. Wir verwenden die POST-Methode, da wir die hochgeladene Datei auf dem Server speichern müssen. Das Attribut

enctype gibt den zu verwendenden Kodierungstyp an. Um Dateien hochladen zu können, geben wir multipart/form-data an.

-Element wird verwendet, um die hochzuladende Datei auszuwählen. Wir haben außerdem eine Schaltfläche zum Senden hinzugefügt, damit Benutzer ausgewählte Dateien auf den Server hochladen können.

  1. Serverseitiges Verarbeitungsskript

Jetzt müssen wir ein PHP-Skript schreiben, um die Anfrage zum Hochladen von Dateien zu verarbeiten. Wir werden dieses Skript in die Datei upload.php schreiben. In diesem Skript prüfen wir zunächst, ob die hochgeladene Datei existiert und ob der Upload erfolgreich war. Wenn der Upload erfolgreich ist, erhalten wir die Daten aus der hochgeladenen Datei und speichern sie in der Datenbank.

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

// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
  $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
  if($check !== false) {
    echo "文件是一个图片类型 - " . $check["mime"] . ".";
    $uploadOk = 1;
  } else {
    echo "文件不是一个图片类型.";
    $uploadOk = 0;
  }
}

// Check if file already exists
if (file_exists($target_file)) {
  echo "已存在同名文件.";
  $uploadOk = 0;
}

// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
  echo "文件太大了.";
  $uploadOk = 0;
}

// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
  echo "只支持JPG, JPEG, PNG和GIF文件类型.";
  $uploadOk = 0;
}

// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
  echo "文件上传失败.";

// if everything is ok, try to upload file
} else {
  if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
    echo "文件 ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). "已经被上传.";
    
    // 保存文件数据到数据库中 
    
  } else {
    echo "文件上传发生错误.";
  }
}
?>
Nach dem Login kopieren

In diesem Skript gibt die Variable $target_dir das Verzeichnis der hochgeladenen Datei an. Die Variable $target_file gibt den Dateinamen an, unter dem gespeichert werden soll. Die Variable $_FILES enthält die Daten der hochgeladenen Datei. Wir verwenden die Funktion basename(), um den Dateinamen abzurufen, und die Funktion strtolower(), um die Erweiterung in Kleinbuchstaben umzuwandeln. Die Variable $uploadOk wird verwendet, um zu verfolgen, ob der Upload erfolgreich war, und die Variable $imageFileType speichert den Typ der hochgeladenen Datei.

Wir verwenden die Funktion getimagesize(), um zu prüfen, ob die hochgeladene Datei vom Typ Bild ist. Wenn es sich um einen Bildtyp handelt, geben wir den MIME-Typ der Datei aus. Wenn nicht, setzen wir die Variable $uploadOk auf 0, um anzuzeigen, dass der Upload fehlgeschlagen ist.

Als nächstes prüfen wir, ob die Datei bereits existiert. Wenn sie vorhanden ist, setzen Sie die Variable $uploadOk auf 0, um anzuzeigen, dass der Upload fehlgeschlagen ist.

Wir prüfen auch, ob die Dateigröße den Anforderungen entspricht. Wenn es größer als 500 KB ist, setzen Sie die Variable $uploadOk auf 0, um anzuzeigen, dass der Upload fehlgeschlagen ist.

Abschließend prüfen wir, ob der Dateityp den Anforderungen entspricht. Jetzt werden nur noch die Typen JPG, JPEG, PNG und GIF unterstützt. Wenn nicht, setzen Sie die Variable $uploadOk auf 0, um anzuzeigen, dass der Upload fehlgeschlagen ist.

Wenn alle Prüfungen erfolgreich sind, versuchen Sie, die hochgeladene Datei in das angegebene Verzeichnis zu verschieben. Bei erfolgreicher Verschiebung wird eine Meldung ausgegeben, dass die Datei hochgeladen wurde und die Daten der hochgeladenen Datei werden in der Datenbank gespeichert. Andernfalls wird eine Fehlermeldung ausgegeben.

  1. Speichern Sie die Dateidaten in der Datenbank

Nach dem erfolgreichen Hochladen der Datei müssen wir die Dateidaten in der Datenbank speichern. In diesem Beispiel erstellen wir eine Datenbanktabelle mit drei Feldern: id, fileName und fileData.

Zur Implementierung dieser Funktion sind eine Datenbankverbindung und eine $sql-Anweisung erforderlich. Die $sql-Anweisung muss sowohl den Dateinamen als auch die Dateidaten einfügen. In PHP können wir die Funktionen fopen(), fread() und fclose() verwenden, um Dateidaten zu verarbeiten. Um also Dateidaten in die $sql-Anweisung einzufügen, müssen wir zuerst die Datei mit der Funktion fopen() öffnen, dann die Daten mit der Funktion fread() aus der Datei lesen und schließlich die Datei mit der Funktion fclose() schließen. Funktion. Der Code lautet wie folgt:

<?php
$conn = new mysqli("localhost", "root", "", "test");
if ($conn->connect_error) {
  die("连接数据库失败: " . $conn->connect_error);
}

// Check server connection
if ($conn->connect_error) {
  die("连接数据库失败: " . $conn->connect_error);
} 

$fileName = $_FILES["fileToUpload"]["name"];
$fileData = "";

// Open the file for reading
$file = fopen($target_file, "r");

// Read from the file until the end
while(!feof($file)) {
  $fileData .= fread($file, 8192);
}

// Close the file
fclose($file);

// Prepare SQL statement
$sql = "INSERT INTO upload_files (fileName, fileData) VALUES ('$fileName', '$fileData')";

if ($conn->query($sql) === TRUE) {
  echo "上传成功!";
} else {
  echo "上传失败:" . $conn->error;
}

$conn->close();
?>
Nach dem Login kopieren

In diesem Skript öffnen wir die Datei und lesen alle Daten der Datei mit der Funktion fread(). Diese Daten werden in der Variablen $fileData gespeichert und die neuen hochgeladenen Dateidaten werden in die $sql-Anweisung eingefügt.

Jetzt haben wir die Funktion zum Speichern hochgeladener Dateien in der Datenbank implementiert.

Zusammenfassung

In diesem Artikel haben wir vorgestellt, wie man mit PHP Dateien hochlädt und Dateidaten in einer Datenbank speichert. Wir begannen mit einem HTML-Formular, schrieben dann ein serverseitiges Verarbeitungsskript und speicherten die hochgeladenen Dateidaten in einer Datenbank. Dieses Beispiel demonstriert einen vollständigen Prozess des Hochladens und Speicherns von Dateien in der Datenbank und dürfte für Webentwickler nützlich sein.

Das obige ist der detaillierte Inhalt vonSo laden Sie Dateien hoch und speichern sie in der Datenbank 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

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

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)

PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. PHP 8 JIT (Just-in-Time) -Kompilation: Wie es die Leistung verbessert. Mar 25, 2025 am 10:37 AM

Die JIT -Kompilierung von PHP 8 verbessert die Leistung, indem häufig ausgeführte Code in den Maschinencode zusammengestellt wird, um Anwendungen mit schweren Berechnungen zugute und die Ausführungszeiten zu reduzieren.

OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. OWASP Top 10 PHP: Beschreiben und mildern gemeinsame Schwachstellen. Mar 26, 2025 pm 04:13 PM

In dem Artikel werden OWASP Top 10 Schwachstellen in PHP- und Minderungsstrategien erörtert. Zu den wichtigsten Problemen gehören die Injektion, die kaputte Authentifizierung und XSS mit empfohlenen Tools zur Überwachung und Sicherung von PHP -Anwendungen.

PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. PHP Secure-Datei-Uploads: Verhindern von Sicherheitslücken im Zusammenhang mit Datei. Mar 26, 2025 pm 04:18 PM

In dem Artikel wird das Sicherung von PHP -Dateien -Uploads erläutert, um Schwachstellen wie die Code -Injektion zu verhindern. Es konzentriert sich auf die Dateitypvalidierung, den sicheren Speicher und die Fehlerbehandlung, um die Anwendungssicherheit zu verbessern.

PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. PHP -Verschlüsselung: Symmetrische und asymmetrische Verschlüsselung. Mar 25, 2025 pm 03:12 PM

In dem Artikel wird die symmetrische und asymmetrische Verschlüsselung in PHP erörtert und ihre Eignung, Leistung und Sicherheitsunterschiede verglichen. Die symmetrische Verschlüsselung ist schneller und für Massendaten geeignet, während asymmetrisch für den sicheren Schlüsselaustausch verwendet wird.

PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. PHP -Authentifizierung & amp; Autorisierung: sichere Implementierung. Mar 25, 2025 pm 03:06 PM

In dem Artikel wird die Implementierung einer robusten Authentifizierung und Autorisierung in PHP erörtert, um den nicht autorisierten Zugriff zu verhindern, Best Practices zu beschreiben und sicherheitsrelevante Tools zu empfehlen.

PHP -CSRF -Schutz: Wie Sie CSRF -Angriffe verhindern. PHP -CSRF -Schutz: Wie Sie CSRF -Angriffe verhindern. Mar 25, 2025 pm 03:05 PM

In dem Artikel werden Strategien erörtert, um CSRF-Angriffe in PHP zu verhindern, einschließlich der Verwendung von CSRF-Token, selben Cookies und ordnungsgemäßem Sitzungsmanagement.

Wie rufen Sie Daten mit PHP aus einer Datenbank ab? Wie rufen Sie Daten mit PHP aus einer Datenbank ab? Mar 20, 2025 pm 04:57 PM

In Artikel wird das Abrufen von Daten aus Datenbanken mithilfe von PHP, die Schritte, Sicherheitsmaßnahmen, Optimierungstechniken und gemeinsame Fehler bei Lösungen erfasst.

Was ist der Zweck von vorbereiteten Aussagen in PHP? Was ist der Zweck von vorbereiteten Aussagen in PHP? Mar 20, 2025 pm 04:47 PM

Vorbereitete Aussagen in PHP erhöhen die Sicherheit und Effizienz der Datenbank durch Verhinderung der SQL -Injektion und Verbesserung der Abfrageleistung durch Zusammenstellung und Wiederverwendung.

See all articles