IRONSOFTWAREHOME
IRONBARCODE VERWENDEN

ASP.NET Barcode-Scanner: Datei-Upload und REST-API mit IronBarcode

Curtis Chau
Curtis Chau
Updated: 20. Juni 2026

Barcode-Scannen in ASP.NET wird mit IronBarcode einfach: über NuGet installieren, BarcodeReader.Read() aufrufen und dekodierte Werte mit Typ-, Vertrauens- und Positionsdaten in einem Schritt erhalten -- keine komplexe Konfiguration erforderlich.

Das Scannen von Barcodes ist eine Standardvoraussetzung in modernen Webanwendungen und bildet die Grundlage für Workflows in den Bereichen Bestandsverwaltung, Dokumentenverarbeitung und Ticketvalidierung. Laut GS1 werden Barcodes weltweit täglich in über 6 Milliarden Transaktionen verwendet – eine Zahl, die unterstreicht, wie wichtig das genaue Lesen von Barcodes für jedes Geschäftssystem ist. Der Standard ISO/IEC 15415 definiert Qualitätsmetriken für 2D-Barcodesymbole, während der Standard ISO/IEC 15416 1D-lineare Barcodes abdeckt; beide werden von IronBarcode nativ unterstützt.

Dieser Leitfaden zeigt Ihnen, wie Sie mit IronBarcode zuverlässiges Barcode-Scannen in Ihre ASP.NET Core Anwendung integrieren. Er behandelt die Installation, die Verarbeitung von Datei-Uploads, die REST-API-Integration und die Bereitstellungsmuster für die Produktion. Am Ende verfügen Sie über funktionierenden Code sowohl für einen Razor -Page-Datei-Upload-Scanner als auch für einen JSON-API-Endpunkt, der Base64-kodierte Bilder von jedem Client akzeptiert.

Wie installiert man IronBarcode in einem ASP.NET -Projekt?

Der Einstieg dauert nur wenige Minuten. Die Bibliothek unterstützt sowohl ASP.NET Core als auch traditionelle ASP.NET MVC-Anwendungen und ist somit für verschiedene Projekttypen geeignet. Enterprise funktionieren gleichermaßen gut auf Azure , AWS Lambda und Docker-Containern . Die maschinelle Lernfunktion der Bibliothek ermöglicht die Verarbeitung anspruchsvoller Barcode-Bilder durch automatische Anwendung einer ausgeklügelten Bildkorrektur. Dies ist besonders nützlich bei der Verarbeitung von Fotos, die mit Handykameras unter wechselnden Lichtverhältnissen aufgenommen wurden.

Installation über NuGet Package Manager

Öffnen Sie die Paketmanager-Konsole in Visual Studio und führen Sie den Befehl aus:

PM > Install-Package BarCode

Alternativ können Sie die .NET -Befehlszeilenschnittstelle verwenden:

dotnet add package BarCode

Oder suchen Sie in der Benutzeroberfläche des Visual Studio NuGet -Paketmanagers nach "BarCode" und klicken Sie auf "Installieren". Das Paket verwaltet automatisch alle Abhängigkeiten.

Für plattformspezifische Bereitstellungen sollten Sie die Verwendung plattformspezifischer NuGet Pakete in Betracht ziehen, die für Ihre Zielumgebung optimiert sind. Die Bibliothek bietet sowohl Standard- als auch BarCode.Slim-Pakete für unterschiedliche Einsatzszenarien. Eine vollständige Installationsanleitung finden Sie im IronBarcode Installationshandbuch .

Konfigurieren Ihres Projekts

Nach der Installation fügen Sie die notwendige using-Anweisung zu Ihren C#-Dateien hinzu:

using IronBarCode;

Dieser Import ermöglicht Ihnen den Zugriff auf alle Barcode-Lese- und Generierungsfunktionen von IronBarcode. Die Bibliothek unterstützt über 30 Barcode-Formate, darunter QR-Code, Code 128, Code 39, Data Matrix und PDF417. Die vollständige Liste der unterstützten Barcode-Formate finden Sie hier. Prüfen Sie, ob diese mit Ihrem Anwendungsfall kompatibel sind.

Bei Installationsproblemen konsultieren Sie bitte den Leitfaden zur Fehlerbehebung der NuGet Pakete oder stellen Sie eine technische Anfrage für spezialisierte Unterstützung.

Das richtige Architekturmuster auswählen

Bei der Implementierung des Barcode-Scannens in ASP.NET gibt es zwei primäre Architekturansätze. Das Verständnis dieser Muster hilft Ihnen bei der Auswahl der richtigen Barcode-Lesegeräteeinstellungen für jeden Anwendungsfall:

// Server-side processing -- recommended for most ASP.NET scenarios
var options = new BarcodeReaderOptions
{
    Speed = ReadingSpeed.Balanced,
    ExpectMultipleBarcodes = true,
    UseConfidenceThreshold = true,
    ConfidenceThreshold = 0.85
};

var results = BarcodeReader.Read(stream, options);

foreach (var barcode in results)
{
    Console.WriteLine($"Type: {barcode.BarcodeType}, Value: {barcode.Text}");
}

Der serverseitige Ansatz bietet Ihnen maximale Kontrolle über die Bildverarbeitung und funktioniert konsistent auf allen Browsern. Wenn der Server jedes Bild verarbeitet, erhalten Sie auch einen sauberen Prüfpfad: Jeder gescannte Barcode durchläuft Ihre Anwendungsschicht, wo Sie ihn protokollieren, mit einer Datenbank abgleichen oder nachgelagerte Arbeitsabläufe auslösen können. Dieses Muster eignet sich besonders gut für regulierte Branchen wie das Gesundheitswesen, die Logistik und die Fertigungsindustrie, wo jeder Scan protokolliert werden muss.

Für die Integration der Kameraerfassung auf der Client-Seite unterstützen moderne Browser die MediaDevices API für den Kamerazugriff, die mit der serverseitigen Verarbeitung von IronBarcode über eine REST-API kombiniert werden kann -- später in diesem Leitfaden im Detail behandelt. Die Wahl der serverseitigen Verarbeitung vereinfacht auch Ihr Sicherheitsmodell: Es gibt keine sensible Verarbeitungslogik, die dem Browser ausgesetzt ist, und alle Validierungen erfolgen hinter Ihrer Anwendungsgrenze.

Abwägungen beim clientseitigen vs. serverseitigen Barcode-Scanning
AspektClientseitige Erfassung + SerververarbeitungReine serverseitige Verarbeitung
Am besten geeignet fürEchtzeit-Scannen mit KameraStapelverarbeitung, Datei-Uploads
BrowserunterstützungNur moderne BrowserAlle Browser
BenutzererfahrungSofortiges FeedbackStandardmäßiger Upload-Ablauf
SicherheitsmodellKomplexer (CORS, Authentifizierung)Einfach
BandbreitennutzungNiedriger (auf dem Gerät vorverarbeitet)Höher (Rohbild-Upload)

Wie implementiert man das Scannen von Barcodes per Datei-Upload?

Das Scannen von hochgeladenen Dateien ist das häufigste Barcode-Szenario in ASP.NET -Webanwendungen. Dieses Muster eignet sich für die Verarbeitung von Rechnungen, Versandetiketten oder beliebigen Dokumenten mit eingebetteten Barcodes. Zur Verbesserung des Durchsatzes empfiehlt sich die Implementierung einer asynchronen Barcode-Lesung , um mehrere Uploads gleichzeitig zu verarbeiten.

Erstellung des Upload-Formulars

Erstellen Sie ein responsives HTML-Formular in Ihrer ASP.NET Ansicht:

@* Razor view -- barcode upload form *@
<form method="post" enctype="multipart/form-data" id="barcodeForm">
    <div class="form-group">
        <label for="barcodeFile">Select Barcode Image:</label>
        <input type="file" name="barcodeFile" id="barcodeFile"
               accept="image/*,.pdf" class="form-control"
               capture="environment" />
    </div>
    <button type="submit" class="btn btn-primary" id="scanBtn">
        <span class="spinner-border spinner-border-sm d-none" role="status"></span>
        Scan Barcode
    </button>
</form>
<div id="results">
    @ViewBag.BarcodeResult
</div>

Das capture="environment" Attribut aktiviert die Rückkamera auf mobilen Geräten und bietet den Benutzern eine native kameraähnliche Erfahrung ohne JavaScript.

Implementierung einer sicheren Backend-Verarbeitung

Die Controller-Aktion übernimmt die Dateivalidierung, die Verarbeitung des Speicherstroms und die Ergebnisformatierung:

[HttpPost]
[ValidateAntiForgeryToken]
[RequestSizeLimit(10_000_000)] // 10MB limit
public async Task<IActionResult> ScanBarcode(IFormFile barcodeFile)
{
    var allowedExtensions = new[] { ".jpg", ".jpeg", ".png", ".gif",
                                    ".tiff", ".bmp", ".pdf" };
    var extension = Path.GetExtension(barcodeFile.FileName).ToLowerInvariant();

    if (!allowedExtensions.Contains(extension))
    {
        ModelState.AddModelError("", "Invalid file type");
        return View();
    }

    if (barcodeFile != null && barcodeFile.Length > 0)
    {
        using var stream = new MemoryStream();
        await barcodeFile.CopyToAsync(stream);
        stream.Position = 0;

        var options = new BarcodeReaderOptions
        {
            Speed = ReadingSpeed.Balanced,
            ExpectMultipleBarcodes = true,
            ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional |
                                BarcodeEncoding.QRCode |
                                BarcodeEncoding.DataMatrix,
            ImageFilters = new ImageFilterCollection
            {
                new SharpenFilter(),
                new ContrastFilter()
            }
        };

        var results = BarcodeReader.Read(stream, options);

        ViewBag.BarcodeResult = results.Any()
            ? string.Join("<br/>", results.Select(r => $"<strong>{r.BarcodeType}:</strong> {r.Text}"))
            : "No barcodes found in the image.";
    }

    return View();
}

Diese Implementierung validiert den Dateityp vor der Verarbeitung, liest Barcodes aus einem Speicherstream und gibt alle erkannten Ergebnisse zurück. IronBarcode verarbeitet verschiedene Bildformate , darunter mehrseitige TIFF- und GIF- Dokumente sowie PDF-Dokumente , wodurch formatspezifischer Verarbeitungscode entfällt.

Wie die gescannten Eingabe- und Ausgabedaten aussehen

Code 128 Barcode-Encoding-URL 'https://ironsoftware.com/csharp/barcode/' zeigt maschinenlesbare Balken mit menschenlesbarem Text darunter für genaues Scannen in ASP.NET Barcode-Leseanwendungen

Das obige Beispiel zeigt einen Standard-Code-128-Barcode – ein gängiges Format in Versand- und Lagerverwaltungsanwendungen. Nach dem Scanvorgang bestätigt der Ergebnisbildschirm den dekodierten Wert zusammen mit den zugehörigen Konfidenz-Metadaten:

ASP.NET Core-Webanwendungsoberfläche zeigt erfolgreiche Barcode-Scan-Ergebnisse mit Upload-Formular, das dekodierten Code128-Barcode-Wert und Metadaten zur Vertrauensbewertung anzeigt

IronBarcode gibt für jeden im hochgeladenen Bild erkannten Barcode den Barcode-Typ, den dekodierten Wert, den Konfidenzwert und die Positionsdaten zurück.

Wie erstellt man eine REST-API für das Barcode-Scannen?

Moderne ASP.NET Anwendungen stellen häufig Barcode-Scanfunktionen über REST-APIs bereit und ermöglichen so die Integration mit mobilen Apps, Single-Page-Anwendungen oder Diensten von Drittanbietern. Dieses Muster unterstützt die clientseitige Kameraaufnahme mit serverseitiger Verarbeitung.

Sicherheitsaspekte für Barcode-APIs

Bevor Sie den Controller schreiben, planen Sie die Sicherheitsschicht. Barcode-Daten können beliebigen Inhalt enthalten, daher sollten Eingaben immer validiert werden. Befolgen Sie die Sicherheitsrichtlinien von IronBarcode für einen vollständigen Schutz:

  • Eingabevalidierung : Barcode-Inhalte vor dem Speichern oder Verarbeiten bereinigen.
  • Ratenbegrenzung : Verwenden Sie die in ASP.NET Core integrierte Middleware zur Ratenbegrenzung, um API-Missbrauch zu verhindern.
  • Authentifizierung : Sichern Sie Endpunkte mit JWT-Tokens oder API-Schlüsseln
  • HTTPS-Erzwingung : Der gesamte Datenverkehr der Barcode-API muss über TLS übertragen werden.
  • CORS-Richtlinie : Beschränken Sie, welche Ursprünge Ihren Scan-Endpunkt aufrufen dürfen.
  • Lizenzschlüsselverwaltung : Lizenzschlüssel korrekt anwenden und in der web.config-Datei für den Produktivbetrieb konfigurieren .

Erstellung des Produktions-API-Controllers

[ApiController]
[Route("api/[controller]")]
public class BarcodeController : ControllerBase
{
    private readonly ILogger<BarcodeController> _logger;
    private readonly IMemoryCache _cache;

    public BarcodeController(ILogger<BarcodeController> logger, IMemoryCache cache)
    {
        _logger = logger;
        _cache = cache;
    }

    [HttpPost("scan")]
    [ProducesResponseType(typeof(BarcodeResponse), 200)]
    [ProducesResponseType(typeof(ErrorResponse), 400)]
    public async Task<IActionResult> ScanBarcode([FromBody] BarcodeRequest request)
    {
        try
        {
            if (string.IsNullOrEmpty(request.ImageBase64))
                return BadRequest(new ErrorResponse { Error = "Image data is required" });

            var cacheKey = $"barcode_{request.ImageBase64.GetHashCode()}";
            if (_cache.TryGetValue(cacheKey, out BarcodeResponse cachedResult))
                return Ok(cachedResult);

            byte[] imageBytes = Convert.FromBase64String(request.ImageBase64);

            if (imageBytes.Length > 10 * 1024 * 1024)
                return BadRequest(new ErrorResponse { Error = "Image size exceeds 10MB limit" });

            var options = new BarcodeReaderOptions
            {
                Speed = ReadingSpeed.Faster,
                ExpectMultipleBarcodes = request.ExpectMultiple ?? false,
                UseConfidenceThreshold = true,
                ConfidenceThreshold = 0.8
            };

            var results = await Task.Run(() => BarcodeReader.Read(imageBytes, options));

            var response = new BarcodeResponse
            {
                Success = true,
                Barcodes = results.Select(r => new BarcodeData
                {
                    Type = r.BarcodeType.ToString(),
                    Value = r.Text,
                    Confidence = r.Confidence,
                    Position = new BarcodePosition
                    {
                        X = r.Points.Select(p => p.X).Min(),
                        Y = r.Points.Select(p => p.Y).Min(),
                        Width = r.Width,
                        Height = r.Height
                    }
                }).ToList()
            };

            _cache.Set(cacheKey, response, TimeSpan.FromMinutes(5));
            return Ok(response);
        }
        catch (FormatException)
        {
            return BadRequest(new ErrorResponse { Error = "Invalid base64 image data" });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error processing barcode scan");
            return StatusCode(500, new ErrorResponse { Error = "Internal server error" });
        }
    }
}

public record BarcodeRequest(string ImageBase64, bool? ExpectMultiple);

public record BarcodeResponse
{
    public bool Success { get; init; }
    public List<BarcodeData> Barcodes { get; init; } = new();
}

public record BarcodeData
{
    public string Type { get; init; }
    public string Value { get; init; }
    public double Confidence { get; init; }
    public BarcodePosition Position { get; init; }
}

public record BarcodePosition(int X, int Y, int Width, int Height);

public record ErrorResponse
{
    public bool Success => false;
    public string Error { get; init; }
}

Dieser Endpunkt akzeptiert Base64-kodierte Bilder – das Standardformat für die Übertragung von Bildern über HTTP. Die Antwort enthält Barcode-Typ, dekodierten Wert, Konfidenzwert und Position. Bei Szenarien mit hohem Durchsatz sollten Sie die Optionen zur Stapelverarbeitung von Barcodes und zur Optimierung der Lesegeschwindigkeit prüfen.

Wie verarbeitet die API mehrere Barcodes?

Drei verschiedene Barcode-Formate, bezeichnet mit A B C, die QR Code, Code128 und DataMatrix-Symbologien demonstrieren, die IronBarcode gleichzeitig in Produktionsumgebungen verarbeitet

IronBarcode verarbeitet mehrere Barcodes in einem einzigen Bild in einem einzigen Aufruf und gibt ein Array von Ergebnissen zurück. Jeder Eintrag in der Antwort enthält Positionsdaten, damit die Client-Anwendung erkannte Barcodes auf dem Bildschirm hervorheben kann.

Netzwerk-Tab der Browser-Entwicklertools zeigt erfolgreiche JSON-API-Antwort mit einem Array von drei erkannten Barcodes mit vollständigen Metadaten, einschließlich Typ-, Wert-, Vertrauens- und Positionskoordinaten

Die strukturierte JSON-Antwort liefert Clientanwendungen alles, was sie zur Verarbeitung und Anzeige von Barcode-Ergebnissen benötigen, ohne dass zusätzliche Abfragen erforderlich sind.

Wie geht man mit problematischen Barcode-Bildern um?

Beim Scannen von Barcodes in der Praxis kommt es häufig zu fehlerhaften Bildern – Fotos, die aus schrägen Winkeln aufgenommen wurden, schlechte Lichtverhältnisse oder teilweise beschädigte Barcodes. IronBarcode begegnet diesen Szenarien durch seine fortschrittlichen Bildverarbeitungsfunktionen und maschinellen Lernverfahren zur Ermittlung von Konfidenzschwellenwerten .

Häufige Scanprobleme diagnostizieren

Bevor Sie Korrekturen vornehmen, ermitteln Sie, in welche Kategorie Ihr Problem fällt. Die meisten Scanfehler in der Produktion lassen sich in eine von fünf Gruppen einteilen: Probleme mit der Bildqualität (Unschärfe, Rauschen, niedrige Auflösung), geometrische Probleme (Drehung, Schräglage, perspektivische Verzerrung), Beschädigungsprobleme (zerrissene Etiketten, verschmierte Tinte), Umweltprobleme (Blendung, Schatten, ungleichmäßige Beleuchtung) und Fehlalarme, bei denen der Leser einen nicht vorhandenen Barcode findet.

Die Kenntnis der Bildkategorie hilft Ihnen, die richtige Filterkombination und Lesegeschwindigkeit auszuwählen, ohne unnötige Bearbeitungsschritte für jedes Bild durchführen zu müssen. Für die meisten Webanwendungsszenarien deckt der Beginn mit ReadingSpeed.Balanced und AutoRotate = true die Mehrheit der Fälle ab. Nur auf ExtremeDetail eskalieren, wenn der erste Durchgang keine Ergebnisse liefert.

Der im folgenden Code dargestellte mehrstufige Ansatz implementiert diese gestaffelte Strategie. Der schnelle erste Durchlauf verarbeitet typische Bilder zügig, wodurch die mittlere Latenz im Normalfall niedrig bleibt. Der detaillierte zweite Durchlauf wird nur dann ausgelöst, wenn der erste Durchlauf fehlschlägt. Dadurch wird sichergestellt, dass Sie die zusätzlichen Verarbeitungskosten nur dann bezahlen, wenn sie tatsächlich erforderlich sind. Dieses Muster sorgt dafür, dass Ihr ASP.NET Endpunkt unter normaler Last reaktionsfähig bleibt und gleichzeitig schwierige Sonderfälle zuverlässig bewältigt.

Häufige Probleme beim Barcode-Scannen und Lösungen
ProblemSymptomLösung
Unscharfes BildNiedrige Konfidenzwerte, LesefehlerSharpenFilter anwenden, Geschwindigkeit ExtremeDetail erhöhen
Gedrehter BarcodeBarcode nicht erkanntAutoRotate = true
Beschädigter BarcodeUnvollständige Messwerte, falsche WerteFehlerkorrektur aktivieren, RemoveFalsePositive verwenden
Geringer KontrastInkonsistente ErkennungContrastFilter und BrightnessFilter anwenden
Leistung zu langsamHohe Latenz beim HochladenVerwenden Sie ReadingSpeed.Faster und aktivieren Sie Multithreading.

Implementierung der Mehrpass-Bildverarbeitung

Bei anspruchsvollen Bildern liefert ein gestaffeltes Verarbeitungsverfahren die besten Ergebnisse, ohne die Leistung bei einfachen Bildern zu beeinträchtigen:

public class AdvancedBarcodeProcessor
{
    private readonly ILogger<AdvancedBarcodeProcessor> _logger;

    public async Task<List<ScannedBarcode>> ProcessChallengingImage(Stream imageStream)
    {
        // First pass -- fast, minimal processing
        var fastOptions = new BarcodeReaderOptions
        {
            Speed = ReadingSpeed.Balanced,
            ExpectMultipleBarcodes = true,
            AutoRotate = false,
            UseConfidenceThreshold = true,
            ConfidenceThreshold = 0.85
        };

        var results = BarcodeReader.Read(imageStream, fastOptions);

        if (!results.Any())
        {
            // Second pass -- aggressive image correction
            imageStream.Position = 0;

            var detailedOptions = new BarcodeReaderOptions
            {
                Speed = ReadingSpeed.ExtremeDetail,
                ExpectMultipleBarcodes = true,
                AutoRotate = true,
                RemoveFalsePositive = true,
                UseConfidenceThreshold = true,
                ConfidenceThreshold = 0.6,
                Multithreaded = true,
                ExpectBarcodeTypes = BarcodeEncoding.All,
                ImageFilters = new ImageFilterCollection
                {
                    new SharpenFilter(2.5f),
                    new ContrastFilter(2.0f),
                    new BrightnessFilter(1.2f),
                    new InvertFilter()
                }
            };

            results = BarcodeReader.Read(imageStream, detailedOptions);
            _logger.LogInformation("Second pass detected {Count} barcodes", results.Count());
        }

        return results.Select(r => new ScannedBarcode
        {
            Value = r.Text,
            BarcodeType = r.BarcodeType.ToString(),
            Confidence = r.Confidence,
            RotationAngle = r.RotationAngle,
            PageNumber = r.PageNumber
        }).ToList();
    }
}

public record ScannedBarcode
{
    public string Value { get; init; }
    public string BarcodeType { get; init; }
    public double Confidence { get; init; }
    public float RotationAngle { get; init; }
    public int PageNumber { get; init; }
}

Die Klasse BarcodeReaderOptions ermöglicht eine detaillierte Kontrolle über jeden Aspekt des Scanvorgangs. Die Einstellung AutoRotate verarbeitet Bilder aus jedem Winkel, während Bildfilter die Klarheit für unscharfe oder kontrastarme Barcodes verbessern. Detaillierte Konfigurationsinformationen finden Sie im Beispiel für die Einstellungen des Barcode-Lesegeräts und in den PDF-spezifischen Lesegeräteeinstellungen .

Bei der Arbeit mit PDFs sollten Sie in Erwägung ziehen, Barcodes auf die PDFs aufzudrucken oder Barcodes als PDF-Dokumente zu erstellen . Bei der Verarbeitung großer Datenmengen verbessert die Aktivierung von Multithreading über die asynchronen und Multithread-Funktionen den Durchsatz erheblich.

Hinzufügen von Browserkompatibilität und Fallback-Strategien

Die Unterstützung verschiedener Browser erfordert progressive Verbesserung. Moderne Browser auf Android und den Desktop-Versionen von Chrome, Edge und Firefox unterstützen die MediaDevices.getUserMedia() API für den Kamerazugriff. Safari auf iOS unterstützt dies ab Version 11. Ältere Enterprise , IE11-Kompatibilitätsmodi und bestimmte abgeschottete Unternehmensumgebungen unterstützen möglicherweise überhaupt keinen Kamerazugriff, daher muss Ihr alternativer Datei-Upload-Pfad stets funktionsfähig bleiben.

Die empfohlene Vorgehensweise besteht darin, die Merkmalserkennung zur Laufzeit anstelle des User-Agent-Sniffings zu nutzen und die Kameraschnittstelle entsprechend ein- oder auszublenden. Beginnen Sie mit einer Benutzeroberfläche mit Kamerafunktion und kehren Sie elegant zum Datei-Upload zurück:

@* Razor view with progressive enhancement *@
<div class="barcode-scanner-container">
    @* Camera capture -- hidden until JavaScript confirms support *@
    <div id="cameraSection" class="d-none">
        <video id="videoPreview" class="w-100" autoplay></video>
        <button id="captureBtn" class="btn btn-primary mt-2">Capture and Scan</button>
    </div>

    @* File upload -- always available as fallback *@
    <div id="uploadSection">
        <form method="post" enctype="multipart/form-data"
              asp-action="ScanBarcode" asp-controller="Barcode">
            <div class="form-group">
                <label>Upload Barcode Image:</label>
                <input type="file" name="file" accept="image/*,.pdf"
                       class="form-control" required />
            </div>
            <button type="submit" class="btn btn-primary">Upload and Scan</button>
        </form>
    </div>
</div>

Die Blazor Integration bietet moderne Webanwendungsunterstützung mit minimalem Konfigurationsaufwand, falls Sie einen komponentenorientierten Ansatz bevorzugen. Informationen zur Fehlerbehebung bei der Bereitstellung finden Sie im Leitfaden zu Laufzeitfehlern (Runtime CopyException) .

Was sind Ihre nächsten Schritte?

Das Scannen von Barcodes in ASP.NET ist mit IronBarcode unkompliziert. Sie installieren ein NuGet-Paket, rufen BarcodeReader.Read() auf und erhalten zuverlässige Dekodierungsergebnisse über 30+ Formate -- einschließlich herausfordernder realer Bilder, die anderen Bibliotheken Schwierigkeiten bereiten.

Um auf dieser Grundlage weiter aufzubauen, erkunden Sie diese Ressourcen:

Starten Sie mit einer kostenlosen Testlizenz , um IronBarcode in Ihrer ASP.NET Anwendung ohne Einschränkungen zu testen. Die Testversion beinhaltet vollen Zugriff auf alle Funktionen, einschließlich der Erkennung verschiedener Formate, der Bildkorrektur und der in diesem Leitfaden gezeigten REST-API-Muster – damit Sie die Leistung anhand Ihrer eigenen Bilder bewerten können, bevor Sie sich für eine Produktionslizenz entscheiden. Für .NET MAUI Mobil-Apps, die das Scannen auf dem Gerät benötigen, siehe das .NET MAUI Barcode-Scanner-Tutorial , das die gleiche API auf iOS- und Android-Ziele erweitert.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
AWS-Logo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Azure (WebApps, Funktionen v3)
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Azure (WebApps, Funktionen v3)
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.