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

So optimieren Sie das Bild beim Hochladen in PHP

23

Kürzlich hat mich einer der Leser gefragt, wie man Bilder beim Hochladen in PHP optimiert. Um die Frage zu beantworten, habe ich beschlossen, einen Artikel zu schreiben, der zeigt, wie wir die Dateigröße beim Hochladen reduzieren oder komprimieren können.

Als Entwickler ist das Hochladen von Dateien unsere regelmäßige Aufgabe. Wir machen es immer auf traditionelle Weise. Mit der eingebauten Funktion verschieben move_uploaded_filewir die Bilder in das Verzeichnis und lassen sie so wie sie sind. Denken wir an ein paar Punkte wie die Größe des hochgeladenen Bildes? Wird es eine Weile dauern, bis dieses Bild auf einer Website geladen wird? Kann ich ein Bild optimieren, ohne seine Qualität zu verlieren?

Bilder spielen eine wichtige Rolle für die Geschwindigkeit der Website. Schwere Bilder verlangsamen die Seitengeschwindigkeit, wodurch Ihr Publikum und Ihr Datenverkehr verloren gehen. Diese Situation ist nicht bezahlbar. Wir bemühen uns sehr, das Publikum und den Verkehr aufzubauen. Als bewährte Vorgehensweise sollten Sie das Bild beim Hochladen optimieren.

In diesem Artikel werde ich den TinyPNG- Dienst zur Optimierung der Bilder verwenden. Wir werden in wenigen Augenblicken einen Code dafür schreiben. In der Zwischenzeit ist unten der Screenshot von tinypng.com, um den Unterschied zwischen Original- und optimiertem Bild zu visualisieren.

So optimieren Sie das Bild beim Hochladen in PHP

Verwenden Sie TinyPNG, um das Bild beim Hochladen zu optimieren

Um zu beginnen, müssen Sie die TinyPNG-Bibliothek installieren. Installieren Sie die Bibliothek mit dem folgenden Befehl.

composer require tinify/tinify

Holen Sie sich nach der Installation der Bibliothek Ihren API-Schlüssel von der TinyPNG- Website.

Hinweis: TinyPNG ermöglicht die kostenlose Komprimierung von 500 Bildern pro Monat. Für mehr als 500 Bilder müssen Sie diese bezahlen. Wenn Sie eine kleine Website betreiben, reicht dieses Kontingent aus.

Sobald Sie mit dem API-Schlüssel fertig sind, beginnen wir mit dem Code. Ich erstelle ein einfaches HTML-Formular, das Dateieingaben und eine Schaltfläche zum Senden enthält.

<form method="post" enctype="multipart/form-data">
    <p><input type="file" name="myfile" accept="image/*" required /></p>
    <button type="submit" name="submit">Submit</button>
</form>

Wenn die Benutzer ein Bild mithilfe dieses Formulars hochladen, schreiben die Entwickler die folgende Art von Code, um das hochgeladene Bild auf den Server zu verschieben.

if (isset($_POST['submit'])) {
 
    $allowed_mime_types = array('image/gif', 'image/jpg', 'image/jpeg', 'image/png');
 
    if (!in_array($_FILES['myfile']['type'], $allowed_mime_types)) {
        echo 'Invalid file format.';
        exit();
    }
 
    if (!file_exists(getcwd().'/uploads')) {
        mkdir(getcwd().'/uploads', 0777);
    }
 
    $src_file_name = $_FILES['myfile']['name'];
    move_uploaded_file($_FILES['myfile']['tmp_name'], getcwd().'/uploads/'.$src_file_name);
 
    echo "File uploaded successfully";
}

Der obige Code ist korrekt und es gibt kein Problem mit Ausnahme des fehlenden Teils der Bildoptimierung. Um Bilder zu optimieren, müssen Sie nur 2 Zeilen Code nach der move_uploaded_fileAnweisung hinzufügen .

//optimize image using TinyPNG
$source = TinifyfromFile(getcwd().'/uploads/'.$src_file_name);
$source->toFile(getcwd().'/uploads/'.$src_file_name);

Die obigen 2 Zeilen nehmen ein Bild aus dem Quellpfad, optimieren es mit der TinyPNG-Bibliothek ohne Qualitätsverlust und speichern es wieder im gleichen Quellpfad. Mit anderen Worten, es ersetzt das Originalbild durch die optimierte Version.

Unser endgültiger Code ist wie folgt.

<?php
require_once("vendor/autoload.php");
 
TinifysetKey("TINYPNG_API_KEY"); //pass your actual API key
 
if (isset($_POST['submit'])) {
 
    $allowed_mime_types = array('image/gif', 'image/jpg', 'image/jpeg', 'image/png');
 
    if (!in_array($_FILES['myfile']['type'], $allowed_mime_types)) {
        echo 'Invalid file format.';
        exit();
    }
 
    if (!file_exists(getcwd().'/uploads')) {
        mkdir(getcwd().'/uploads', 0777);
    }
 
    $src_file_name = $_FILES['myfile']['name'];
    move_uploaded_file($_FILES['myfile']['tmp_name'], getcwd().'/uploads/'.$src_file_name);
 
    //optimize image using TinyPNG
    $source = TinifyfromFile(getcwd().'/uploads/'.$src_file_name);
    $source->toFile(getcwd().'/uploads/'.$src_file_name);
 
    echo "File uploaded successfully.";
}
?>
<form method="post" enctype="multipart/form-data">
    <p><input type="file" name="myfile" accept="image/*" required /></p>
    <button type="submit" name="submit">Submit</button>
</form>

Mach weiter und probiere es aus. Sie sollten sehen, dass die optimierte Version des Bildes in Ihrem Verzeichnis gespeichert wird.

Ich hoffe, Sie verstehen, wie Sie das Bild beim Hochladen in PHP optimieren. Ich würde gerne Ihre Gedanken und Vorschläge im Kommentarbereich unten hören.

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