...
✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

Bild mit Bulletproof Library in PHP hochladen Upload

22

Das Hochladen eines Images auf den Server ist eine häufige Aufgabe für Entwickler. Diese Aufgabe mag man schon Hunderte Male gemacht haben. Während dieses Upload-Prozesses müssen sich Entwickler um folgende Dinge kümmern.

  • Überprüfen Sie, ob die hochgeladene Datei ein Bild ist
  • Erstellen Sie ein Verzeichnis, in dem Bilder gespeichert werden
  • Generieren Sie für jedes Bild einen eindeutigen Namen, damit es das vorhandene Bild mit demselben Namen nicht ersetzt.
  • Fügen Sie optional eine Validierung für die Dimension eines Bildes hinzu. Wenn ein hochgeladenes Bild eine größere Dimension als angegeben hat, wird ein Fehler ausgegeben.

Dies sind die empfohlenen Überprüfungen, die ein Entwickler beim Schreiben von Code befolgen sollte. Für all diese Schritte kann man Bedingungen in den Code schreiben. Aber es wird einige Arbeit erfordern und der Code wird langwierig.

Ich werde empfehlen, die Bulletproof- Bibliothek zu verwenden, die alle diese Schritte für Sie unter der Haube erledigt. Es spart Ihnen die Zeit, Logik für jeden Schritt hinzuzufügen und die Anzahl der Zeilen Ihres Codes zu reduzieren.

Bulletproof ist ein PHP-sicherer Bild-Uploader mit einer netten API. Wir haben diese Bibliothek für unser Projekt ausprobiert und sind mit dem Endergebnis sehr zufrieden. Aus diesem Grund habe ich beschlossen, unseren Lesern ein Wort über diese Bibliothek zu geben.

Die Bulletproof-Bibliothek hat die folgenden Funktionen in ihrem Kern, die sie sicherer machen.

  • Verwendet exif_imagetype(), um den wahren Bild-Mime (.extension) zu erhalten
  • Verwendet getimagesize(), um zu überprüfen, ob das Bild eine gültige Höhe / Breite in Pixeln hat.
  • Gesäuberte Bildnamen, strenge Ordnerberechtigungen und mehr…

Lassen Sie uns jedoch einen Blick darauf werfen, wie Sie Bilder in PHP mithilfe der Bulletproof-Bibliothek hochladen.

Einstieg

Um mit der Bulletproof-Bibliothek zu beginnen, installieren Sie sie mit dem folgenden Composer-Befehl. Stellen Sie sicher, dass Composer auf dem System installiert ist.

composer require samayo/bulletproof:4.0.*

Erstellen Sie als Nächstes ein einfaches HTML-Formular mit Dateieingabe und Senden-Schaltfläche.

<form method="POST" enctype="multipart/form-data">
    <p><input type="file" name="image" accept="image/*" required /></p>
    <input type="submit" name="submit" value="Upload" />
</form>

Bild mit der Bulletproof Library hochladen

Wir sind mit einer Bibliothek und einem HTML-Formular ausgestattet. Fügen wir nun einen von der Bibliothek bereitgestellten Code hinzu, der ein Bild auf den Server hochlädt.

<?php
require_once 'vendor/autoload.php';
 
if (isset($_POST['submit'])) {
 
    $file = new BulletproofImage($_FILES);
 
    $file->setLocation('uploads');
 
    if ($file["image"]) {
        $upload = $file->upload();
 
        if ($upload) {
            echo $upload->getFullPath();
        } else {
            echo $file->getError();
        }
    }
}
?>

Du bist fertig. Fahren Sie fort und testen Sie es. Ihre Bilder werden im Ordner „Uploads” mit einem eindeutigen Namen gespeichert. Der Benutzer kann diesen Ort mit etwas anderem ändern.

Wenn Sie versuchen, andere Dateien als Bilder hochzuladen, erhalten Sie eine Fehlermeldung. Nur für den Fall, dass Sie auch die Dimension festlegen möchten, fügen Sie die folgende Anweisung in den obigen Code ein.

$file->setDimension(600, 400);

Hier ist ‘600’ die Bildbreite und ‘400’ die Höhe eines Bildes. Passen Sie die Werte gemäß Ihren Anforderungen an.

Laden Sie mehrere Bilder mit der Bulletproof Library hoch

Möglicherweise möchten Sie mit dieser Bibliothek mehrere Bilder auf einen Server hochladen. Es erfordert eine kleine Änderung im obigen Code. Sie müssen der Dateieingabe ein ‘multiple’-Attribut hinzufügen. Verwenden Sie außerdem das Array-Format für den Namen der Dateieingabe. Danach durchlaufen wir jedes Bild und laden es wie folgt auf den Server hoch.

<?php
require_once 'vendor/autoload.php';
 
if (isset($_POST['submit'])) {
    for($i = 0; $i < count($_FILES['image']['name']); $i++) {
  
        $arr_file = array(
            "name" => $_FILES['image']['name'][$i],
            "type" => $_FILES['image']['type'][$i],
            "tmp_name" => $_FILES['image']['tmp_name'][$i],
            "error" => $_FILES['image']['error'][$i],
            "size" => $_FILES['image']['size'][$i],
        );
  
        $file = new BulletproofImage($arr_file);
  
        $file->setLocation('uploads');
  
        $upload = $file->upload();
    }
}
?>
<form method="POST" enctype="multipart/form-data">
    <p><input type="file" name="image[]" accept="image/*" multiple required /></p>
    <input type="submit" name="submit" value="Upload" />
</form>

Das ist es! Ich hoffe, Sie verstehen, wie Sie ein Bild über die Bulletproof-Bibliothek hochladen. Bitte teilen Sie Ihre Gedanken und Vorschläge im Kommentarbereich unten mit.

Zum Thema passende Artikel

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen