Zum Fußzeileninhalt springen
IRONPDF NUTZEN

Hochladen und Herunterladen von PDF-Dateien in ASP .NET C# mit IronPDF

Die Verwaltung von PDF-Downloads und Uploads ist eine häufige Anforderung in ASP.NET Core MVC (Model-View-Controller) Webanwendungen. Unabhängig davon, ob Dokumente mit EF Core in einer Datenbanktabelle gespeichert oder vor dem Speichern serverseitig verarbeitet werden, benötigen Entwickler zuverlässige Methoden, um PDF-Dokumente effizient zu verarbeiten.

Dieser Artikel zeigt, wie man PDF-Dateien in ASP .NET C# hoch- und runterlädt und dabei IronPDF nutzt, um Wasserzeichen hinzuzufügen, Dokumente bei Bedarf zu generieren und sich nahtlos in .NET Core-Projekte zu integrieren.

Wie erstellt man eine Datenbanktabelle für die PDF-Speicherung?

Der erste Schritt besteht darin, eine Datenbanktabelle zu erstellen, in der hochgeladene PDF-Dateien als Binärdaten gespeichert werden. Der folgende Code zeigt eine Modellklasse, die die Dateistruktur mit Eigenschaften für den Dateinamen, den Inhaltstyp und die Byte-Array-Speicherung darstellt. Dies ist ein häufiges Muster in neuen Tutorials, die sich mit der Datei-Persistenz in EF Core befassen.

public class PdfFileModel
{
    public int Id { get; set; }
    public string FileName { get; set; }
    public string ContentType { get; set; }
    public byte[] FileData { get; set; }
    public DateTime UploadedDate { get; set; }
}
public class PdfFileModel
{
    public int Id { get; set; }
    public string FileName { get; set; }
    public string ContentType { get; set; }
    public byte[] FileData { get; set; }
    public DateTime UploadedDate { get; set; }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dieses Modell wird direkt auf eine Datenbanktabelle abgebildet, in der FileData das PDF-Dokument als binäre Spalte speichert. Die Eigenschaft FileName bewahrt den ursprünglichen Dateinamen, während ContentType die korrekte Aufteilung des Inhalts sicherstellt, wenn die heruntergeladene PDF-Datei den Benutzern zur Verfügung gestellt wird. Je nach Ihren Anforderungen können Sie auch Details-Spalten oder Metadatenfelder hinzufügen.

Wie kann man in ASP.NET Core PDF-Dateien in eine Datenbank hochladen?

Um eine oder mehrere Dateien hochzuladen, erstellen Sie eine Controller-Aktion, die einen IFormFile-Parameter annimmt. Das FileUpload Control in Ihrem HTML-Formular muss enctype="multipart/form-data" verwenden, um die hochgeladene Datei korrekt auf den Server zu laden und sicherzustellen, dass die PDF-Bytes korrekt übertragen werden. Beachten Sie, dass Ihr Namensraum dem Namen Ihres Projekts entspricht.

namespace UploadPdfs.Controllers
{
public class PdfController : Controller
{
    private readonly ApplicationDbContext _context;
    public PdfController(ApplicationDbContext context)
    {
        _context = context;
    }
    [HttpPost]
    public async Task<IActionResult> Upload(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest("No file selected");
        using (var stream = new MemoryStream())
        {
            await file.CopyToAsync(stream);
            var pdfFile = new PdfFileModel
            {
                FileName = file.FileName,
                ContentType = file.ContentType,
                FileData = stream.ToArray(),
                UploadedDate = DateTime.Now
            };
            _context.PdfFiles.Add(pdfFile);
            await _context.SaveChangesAsync();
        }
        return RedirectToAction("Index");
    }
}
}
namespace UploadPdfs.Controllers
{
public class PdfController : Controller
{
    private readonly ApplicationDbContext _context;
    public PdfController(ApplicationDbContext context)
    {
        _context = context;
    }
    [HttpPost]
    public async Task<IActionResult> Upload(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest("No file selected");
        using (var stream = new MemoryStream())
        {
            await file.CopyToAsync(stream);
            var pdfFile = new PdfFileModel
            {
                FileName = file.FileName,
                ContentType = file.ContentType,
                FileData = stream.ToArray(),
                UploadedDate = DateTime.Now
            };
            _context.PdfFiles.Add(pdfFile);
            await _context.SaveChangesAsync();
        }
        return RedirectToAction("Index");
    }
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Hochladen einer einfachen Datei

How to Upload and Download PDF Files in ASP .NET C# with IronPDF: Bild 1 - UI zeigt die hochgeladene PDF-Datei

Hier bietet die IFormFile-Schnittstelle Zugriff auf den Stream der hochgeladenen Datei. Sie können im Projektmappen-Explorer mit der rechten Maustaste auf Ihr Projekt klicken und Hinzufügen → Neuer Ordner wählen, um hochgeladene Dateien zu organisieren, wenn Sie die Speicherung im Dateisystem statt in einer Datenbank bevorzugen.

Verwenden Sie das folgende Formular, um Uploads auszulösen:

<form method="post" action="/Pdf/Upload" enctype="multipart/form-data">
    <button type="submit">Upload</button>
</form>
<form method="post" action="/Pdf/Upload" enctype="multipart/form-data">
    <button type="submit">Upload</button>
</form>
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wie verarbeitet man hochgeladene PDF-Dateien mit Wasserzeichen?

Bevor Sie hochgeladene PDF-Dateien in der Datenbank speichern, können Sie sie mit IronPDFs Wasserzeichenfunktionen bearbeiten. Dies ermöglicht das Hinzufügen von Branding, "DRAFT"-Etiketten oder "CONFIDENTIAL"-Stempeln zu jedem PDF-Dokument, das Ihr System erreicht.

[HttpPost]
 public async Task<IActionResult> UploadWithWatermark(IFormFile file)
 {
     if (file == null || file.Length == 0)
         return BadRequest("No file selected");
     // 1. Read the uploaded file into a byte array
     using (var stream = new MemoryStream())
     {
         await file.CopyToAsync(stream);
         byte[] fileBytes = stream.ToArray();
         // 2. Process with IronPDF (Apply Watermark)
         var PDF = new IronPdf.PdfDocument(fileBytes);
         pdf.ApplyWatermark("<h2 style='color:red'>CONFIDENTIAL</h2>", 60, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
         // 3. Define the new file name and path
         string uniqueFileName = Guid.NewGuid().ToString() + "_" + file.FileName;
         string filePath = Path.Combine(_storagePath, uniqueFileName);
         // 4. Save the processed bytes to the file system
         System.IO.File.WriteAllBytes(filePath, pdf.BinaryData);
         // 5. Save metadata to the in-memory list (instead of DB)
         var pdfFile = new PdfFileModel
         {
             Id = _nextId++,
             FileName = file.FileName,
             ContentType = "application/pdf",
             FilePath = filePath, // Store the physical path
             UploadedDate = DateTime.Now
         };
         _pdfFiles.Add(pdfFile);
     }
     return RedirectToAction("Index");
 }
[HttpPost]
 public async Task<IActionResult> UploadWithWatermark(IFormFile file)
 {
     if (file == null || file.Length == 0)
         return BadRequest("No file selected");
     // 1. Read the uploaded file into a byte array
     using (var stream = new MemoryStream())
     {
         await file.CopyToAsync(stream);
         byte[] fileBytes = stream.ToArray();
         // 2. Process with IronPDF (Apply Watermark)
         var PDF = new IronPdf.PdfDocument(fileBytes);
         pdf.ApplyWatermark("<h2 style='color:red'>CONFIDENTIAL</h2>", 60, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
         // 3. Define the new file name and path
         string uniqueFileName = Guid.NewGuid().ToString() + "_" + file.FileName;
         string filePath = Path.Combine(_storagePath, uniqueFileName);
         // 4. Save the processed bytes to the file system
         System.IO.File.WriteAllBytes(filePath, pdf.BinaryData);
         // 5. Save metadata to the in-memory list (instead of DB)
         var pdfFile = new PdfFileModel
         {
             Id = _nextId++,
             FileName = file.FileName,
             ContentType = "application/pdf",
             FilePath = filePath, // Store the physical path
             UploadedDate = DateTime.Now
         };
         _pdfFiles.Add(pdfFile);
     }
     return RedirectToAction("Index");
 }
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF mit Wasserzeichen

How to Upload and Download PDF Files in ASP .NET C# with IronPDF: Bild 2 - PDF mit Wasserzeichen versehen und dann in unserer Datenbank gespeichert

Die Methode ApplyWatermark von IronPDF unterstützt HTML-Inhalte, Deckkraft, Drehung und Ausrichtung. Dies ist auch bei der Erstellung von Berichten hilfreich, die durch HTTP-Anfragen oder automatisierte Arbeitsaufgaben ausgelöst werden. Erkunden Sie zusätzliche PDF-Bearbeitungsfunktionen für Kopf- und Fußzeilen und Seitenmanipulation.

Wie können Sie Dateien aus der Datenbank herunterladen?

Um PDF-Dateien, die in Ihrer Datenbank gespeichert sind, herunterzuladen, erstellen Sie eine Aktion, die das Byte-Array abruft und es als FileResult zurückgibt. Der folgende Code veranschaulicht die vollständige Download-Funktionalität:

public IActionResult Download(int id)
{
    var pdfFile = _pdfFiles.FirstOrDefault(f => f.Id == id);
    if (pdfFile == null || !System.IO.File.Exists(pdfFile.FilePath))
        return NotFound();
    byte[] fileBytes = System.IO.File.ReadAllBytes(pdfFile.FilePath);
    return File(fileBytes, pdfFile.ContentType, pdfFile.FileName);
}
public IActionResult Download(int id)
{
    var pdfFile = _pdfFiles.FirstOrDefault(f => f.Id == id);
    if (pdfFile == null || !System.IO.File.Exists(pdfFile.FilePath))
        return NotFound();
    byte[] fileBytes = System.IO.File.ReadAllBytes(pdfFile.FilePath);
    return File(fileBytes, pdfFile.ContentType, pdfFile.FileName);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Gespeicherte PDF-Dateien mit Download-Schaltflächen

How to Upload and Download PDF Files in ASP .NET C# with IronPDF: Bild 3 - Liste der gespeicherten PDF-Dateien

Bei der Anzeige von Download-Schaltflächen können Sie Einträge suchen, Details anzeigen und Ergebnisse auf der Grundlage einer Abfrage oder eines Filters ausgeben.

Die Methode File gibt das Byte-Array mit dem entsprechenden Inhaltstyp und Dateinamen zurück. Dies löst einen Download im Browser des Benutzers aus, wobei die Kopfzeilen für den Inhalt richtig platziert werden. Zeigen Sie eine Download-Schaltfläche in Ihrer Ansicht mit HTML-Hilfsmitteln an:

<table>
    @foreach (var item in Model)
    {
        <tr>
            <td>@item.FileName</td>
            <td>@item.UploadedDate</td>
            <td>
                <a href="/Pdf/Download/@item.Id">Download</a>
            </td>
        </tr>
    }
</table>
<table>
    @foreach (var item in Model)
    {
        <tr>
            <td>@item.FileName</td>
            <td>@item.UploadedDate</td>
            <td>
                <a href="/Pdf/Download/@item.Id">Download</a>
            </td>
        </tr>
    }
</table>
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für die Speicherung im Dateisystem als Alternative zur Speicherung in einer Datenbank speichern Sie Dateien in einem Serverpfad und speichern nur den Dateipfad in Ihrer Datenbanktabelle.

Wie können Sie PDF-Dokumente auf Abruf erstellen und herunterladen?

Neben der Speicherung bestehender Dateien können Sie mit der HTML-zu-PDF-Konvertierung von IronPDF dynamisch neue PDF-Dokumente erzeugen. Dieser Ansatz ermöglicht die Erstellung von Berichten, Rechnungen oder Zertifikaten auf Abruf:

public IActionResult GeneratePdf()
{
    var renderer = new IronPdf.ChromePdfRenderer();
    var PDF = renderer.RenderHtmlAsPdf("<h1>Generated Report</h1><p>Created: " + DateTime.Now + "</p>");
    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
public IActionResult GeneratePdf()
{
    var renderer = new IronPdf.ChromePdfRenderer();
    var PDF = renderer.RenderHtmlAsPdf("<h1>Generated Report</h1><p>Created: " + DateTime.Now + "</p>");
    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

PDF auf Abruf generiert

How to Upload and Download PDF Files in ASP .NET C# with IronPDF: Bild 4 - Generiertes Beispiel-PDF

Die Klasse ChromePdfRenderer wandelt HTML-Strings in pixelgenaue PDF-Dokumente um und unterstützt CSS-Styling und JavaScript-Ausführung. Diese Methode gibt die generierte PDF-Datei direkt an den Browser zum Herunterladen ohne Zwischenspeicherung zurück. Diese Methode erfordert keine Standardspeicherung und wird sofort über HTTP GET ausgelöst.

Starten Sie Ihre kostenlose Testversion, um den vollen Funktionsumfang von IronPDF für die ASP.NET Core PDF-Bearbeitung zu erkunden, einschließlich Zusammenführen von Dokumenten, Formularausfüllen und digitale Signaturen.

Abschluss

Die Implementierung von PDF-Upload- und Download-Funktionen in ASP.NET Core kombiniert standardmäßige Dateiverarbeitungstechniken mit den erweiterten Verarbeitungsfunktionen von IronPDF. Mit der Möglichkeit, PDF-Dateien mit Wasserzeichen zu versehen, zu generieren, zu speichern und bereitzustellen, wird Ihre Anwendung robuster und benutzerfreundlicher.

Sie können weitere Funktionen wie das Zusammenführen von Dokumenten, das Hinzufügen von Metadaten, das Ausfüllen von Formularen oder das Erzeugen interaktiver Inhalte integrieren. Lesen Sie die IronPDF-Referenzdokumentation Dokumentation oder schauen Sie sich die neuen Tutorials in unserem Blog an, um sich über die erweiterten Möglichkeiten zu informieren. Haben Sie folgende Fehler in Ihrem Code? Sehen Sie sich die hilfreichen Fehlerbehebungsanleitungen an.

Sind Sie bereit, Ihre ASP.NET Core-Anwendung mit erweiterten PDF-Funktionen zu erweitern? Erwerben Sie eine IronPDF-Lizenz für den produktiven Einsatz, besuchen Sie die ausführlichen Dokumentationen für weitere Informationen, oder chatten Sie mit unserem Team für eine Beratung zu Ihren spezifischen Projektanforderungen.

Häufig gestellte Fragen

Wie kann ich PDF-Dateien in eine ASP.NET Core MVC-Anwendung hochladen?

Um PDF-Dateien in eine ASP.NET Core MVC-Anwendung hochzuladen, können Sie die IFormFile-Schnittstelle verwenden, um Dateidaten aus einem Formular zu erfassen und sie dann vor dem Speichern serverseitig zu verarbeiten, möglicherweise mit Hilfe von IronPDF zur weiteren PDF-Bearbeitung.

Wie kann ich PDF-Dateien in ASP.NET am besten herunterladen?

Der beste Weg, PDF-Dateien in ASP.NET herunterzuladen, ist die Verwendung der FileResult-Aktion in Ihrem Controller. IronPDF kann bei der serverseitigen Generierung und Modifizierung von PDFs helfen, um sicherzustellen, dass sie zum Download bereit sind.

Kann ich mit ASP.NET PDF-Dateien in einer Datenbank speichern?

Ja, Sie können PDF-Dateien mit ASP.NET in einer Datenbank speichern, indem Sie die Datei in ein Byte-Array konvertieren und als Binary Large Object (BLOB) speichern. IronPDF kann bei der Verarbeitung der PDF-Datei vor der Speicherung helfen.

Wie hilft IronPDF bei der Erstellung von Wasserzeichen in PDFs in ASP.NET?

IronPDF bietet Funktionen zum einfachen Hinzufügen von Text- oder Bild-Wasserzeichen zu PDFs, die in Ihre ASP.NET-Anwendung integriert werden können, um Dokumente vor dem Herunterladen oder Speichern zu ändern.

Was sind die Vorteile der Verwendung von EF Core für die PDF-Speicherung?

EF Core ermöglicht ein effizientes objektrelationales Mapping, das die strukturierte und skalierbare Verwaltung der Speicherung und des Abrufs von PDF-Dateien in Ihrer ASP.NET-Anwendung erleichtert.

Ist es möglich, PDF-Inhalte in ASP.NET-Anwendungen zu bearbeiten?

Ja, mit IronPDF können Sie PDF-Inhalte manipulieren, einschließlich der Bearbeitung von Text, Bildern und Metadaten, was für die Anpassung von Dokumenten nützlich sein kann, bevor sie den Benutzern zur Verfügung gestellt werden.

Wie kann ich Datei-Uploads in ASP.NET sicher handhaben?

Um Datei-Uploads in ASP.NET sicher zu handhaben, sollten Sie die Dateitypen validieren, die Dateigrößen begrenzen und die Dateien an sicheren Orten speichern. Die Verwendung von Bibliotheken wie IronPDF kann auch dazu beitragen, die Integrität der PDF-Dateien selbst zu gewährleisten.

Was sind die häufigsten Herausforderungen bei der Arbeit mit PDFs in Webanwendungen?

Zu den häufigsten Herausforderungen gehören die Sicherstellung der Dateikompatibilität, die Verwaltung großer Dateigrößen und die Wahrung der Dokumentintegrität. IronPDF hilft, diese Herausforderungen zu meistern, indem es robuste Werkzeuge für die Erstellung und Bearbeitung von PDF-Dateien bereitstellt.

Kann ich in ASP.NET verschiedene Dateitypen in PDF konvertieren?

Ja, IronPDF ermöglicht es Ihnen, verschiedene Dateitypen wie HTML- oder Bilddateien nahtlos in Ihrer ASP.NET-Anwendung in PDFs zu konvertieren.

Welche Rolle spielt der Model-View-Controller (MVC) bei der Verarbeitung von PDFs in ASP.NET?

Das MVC-Muster hilft bei der Organisation des Codes für den Umgang mit PDFs, indem es die Datenverarbeitung (Model), die Benutzeroberfläche (View) und die Anwendungslogik (Controller) voneinander trennt und so die Verwaltung und Erweiterung von PDF-Funktionen erleichtert.

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 ...

Weiterlesen