In diesem Tutorial erfahren Sie, wie Sie mit Postman in der Laravel 8-App mehrere Bilddateien über die API hochladen. Führen Sie die folgenden Schritte aus, um mehrere Bilddateien über die API mithilfe von Postman in Laravel 8-Anwendungen hochzuladen:
Öffnen Sie zunächst Ihr Terminal und führen Sie den folgenden Befehl aus, um das Laravel Fresh-Anwendungs-Setup zum Hochladen von Dateien über die Laravel-API zu installieren oder herunterzuladen:
composer create-project --prefer-dist laravel/laravel Blog
Navigieren Sie als Nächstes zum Stammverzeichnis Ihrer heruntergeladenen Laravel-App und öffnen Sie die .env-Datei . Fügen Sie dann Ihre Datenbankdetails wie folgt in die .env-Datei ein:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=here your database name here
DB_USERNAME=here database username here
DB_PASSWORD=here database password here
Öffnen Sie in diesem Schritt eine Eingabeaufforderung und führen Sie den folgenden Befehl aus:
php artisan make:model Image -m
Dieser Befehl erstellt eine Modellnamendatei und eine Migrationsdatei für die Bildertabelle .
Navigieren Sie dann zum Ordner „database/migrations“ und öffnen Sie „create_images_table.php“ . Aktualisieren Sie dann den folgenden Code in create_images_table.php :
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateImagesTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('images', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('path');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('images');
}
}
Führen Sie anschließend den folgenden Befehl aus, um die Tabelle in Ihre ausgewählte Datenbank zu migrieren:
php artisan migrate
Navigieren Sie in diesem Schritt zum Ordner app/routes und öffnen Sie die Datei api.php . Aktualisieren Sie dann die folgenden Routen in Ihrer api.php- Datei:
use App\Http\Controllers\API\MultipleUploadController;
Route::post('multiple-image-upload', [MultipleUploadController::class, 'upload']);
Öffnen Sie in diesem Schritt Ihr Terminal und führen Sie den folgenden Befehl aus:
php artisan make:controller API\MultipleUploadController
Beachten Sie, dass dieser Befehl einen Controller mit dem Namen MultipleUploadController.php erstellt .
Jetzt den Ordner app/http/controllers/API öffnen und MultipleUploadController.php öffnen . Aktualisieren Sie dann die folgenden Datei-Upload-Methoden in Ihrer MultipleUploadController.php- Datei:
<?php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use App\Models\Image;
use Validator;
use Illuminate\Http\Request;
class MultipleUploadController extends Controller
{
public function store(Request $request)
{
if(!$request->hasFile('fileName')) {
return response()->json(['upload_file_not_found'], 400);
}
$allowedfileExtension=['pdf','jpg','png'];
$files = $request->file('fileName');
$errors = [];
foreach ($files as $file) {
$extension = $file->getClientOriginalExtension();
$check = in_array($extension,$allowedfileExtension);
if($check) {
foreach($request->fileName as $mediaFiles) {
$path = $mediaFiles->store('public/images');
$name = $mediaFiles->getClientOriginalName();
//store image file into directory and db
$save = new Image();
$save->title = $name;
$save->path = $path;
$save->save();
}
} else {
return response()->json(['invalid_file_format'], 422);
}
return response()->json(['file_uploaded'], 200);
}
}
}
Führen Sie in diesem Schritt den folgenden Befehl aus, um den Entwicklungsserver zu starten:
php artisan serve
Schließlich das Hochladen mehrerer Bilddateien über Laravel 8-APIs mithilfe der Postman-App . Starten Sie also die Postman-App und verwenden Sie die folgende URL, um mehrere Bilddateien über die API in der Laravel 8-App hochzuladen:
http://127.0.0.1:8000/multiple-image-upload
In diesem Tutorial haben Sie gelernt, wie Sie mithilfe von Postman mehrere Bilddateien in Laravel 8-Apps über die API hochladen.