使用IRONPDF 如何使用 IronPDF for .NET 在 ASP .NET C# 中上傳和下載 PDF 檔案 Curtis Chau 發表日期:12月 3, 2025 下載 IronPDF NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 在 ASP.NET Core MVC(模型-視圖-控制器)Web 應用程式中,管理 PDF 下載檔案和上傳是一個常見的需求。 無論是使用 EF Core 將文檔儲存在資料庫表中,還是在儲存之前在伺服器端處理文檔,開發人員都需要可靠的方法來有效率地處理 PDF 文件。 本文示範如何在 ASP.NET C# 中上傳和下載 PDF 文件,同時利用 IronPDF 新增浮水印、按需產生文檔,並與 .NET Core 專案無縫整合。 如何建立用於儲存 PDF 文件的資料庫表? 第一步是建立資料庫表,將上傳的 PDF 檔案作為二進位資料儲存。 以下程式碼展示了一個表示檔案結構的模型類,該模型類具有檔案名稱、內容類型和位元組數組儲存等屬性。 這是 EF Core 檔案持久化相關教學中的常見模式。 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 該模型直接對應到資料庫表,其中 FileData 將 PDF 文件儲存為 varbinary 列。 FileName 屬性保留原始檔案名,而ContentType可確保在向使用者提供下載的 PDF 檔案時正確處理內容。 您也可以根據需要新增詳細資料列或元資料欄位。 如何在 ASP.NET Core 中將 PDF 檔案上傳到資料庫? 若要上傳一個或多個文件,請建立一個接受IFormFile參數的控制器操作。 HTML 表單中的FileUpload控制項必須使用enctype="multipart/form-data"才能將上傳的檔案正確載入到伺服器,並確保 PDF 位元組正確傳輸。 請注意,您的命名空間將與您的專案名稱相同。 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 上傳簡單文件 如何在 ASP.NET C# 中使用 IronPDF 上傳和下載 PDF 檔案:圖 1 - 顯示已上傳 PDF 的 UI 在這裡, IFormFile介面提供了對已上傳檔案流的存取。 如果您喜歡使用檔案系統儲存而不是資料庫,可以在解決方案資源管理器中右鍵單擊項目,然後選擇"新增 → 新建資料夾"來組織上傳的檔案。 使用以下表單觸發上傳: <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 如何處理帶有浮水印的上傳PDF檔案? 在將上傳的 PDF 檔案儲存到資料庫之前,您可以使用IronPDF 的浮水印功能進行處理。 這樣就可以在進入系統的每個 PDF 文件中新增品牌識別、"草稿"標籤或"機密"印章。 [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 如何在 ASP.NET C# 中使用 IronPDF 上傳和下載 PDF 檔案:圖 2 - 帶有浮水印的 PDF 檔案已儲存到我們的資料庫 IronPDF 的ApplyWatermark方法支援 HTML 內容、不透明度、旋轉和對齊。 當產生由 HTTP 請求或自動化工作任務觸發的報告時,這也很有用。 探索更多PDF 編輯功能,包括頁首、頁尾和頁面操作。 如何從資料庫下載檔案? 若要下載儲存在資料庫中的 PDF 文件,請建立一個操作,該操作會擷取位元組數組並將其作為FileResult傳回。 以下程式碼示範了完整的下載功能: 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 帶有下載按鈕的已儲存PDF文件 如何在 ASP.NET C# 中使用 IronPDF 上傳和下載 PDF 檔案:圖 3 - 已儲存的 PDF 檔案列表 顯示下載按鈕時,您可以搜尋條目、顯示詳細信息,並根據Query或篩選條件輸出結果。 File方法傳回具有對應內容類型和檔案名稱的位元組陣列。 這將觸發用戶瀏覽器中的下載,並帶有正確的內容處置標頭。 使用 HTML 輔助函數在視圖中顯示下載按鈕: <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 如果要將檔案系統儲存作為資料庫儲存的替代方案,請將檔案儲存到伺服器路徑,並在資料庫表中僅儲存檔案路徑。 如何按需建立和下載 PDF 文件? 除了儲存現有文件外,您還可以使用IronPDF 的 HTML 轉 PDF 功能動態產生新的 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"); } 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文件 如何在 ASP.NET C# 中使用 IronPDF 上傳和下載 PDF 檔案:圖 4 - 產生的範例 PDF ChromePdfRenderer類將 HTML 字串轉換為像素級精確的 PDF 文件,支援 CSS 樣式和 JavaScript 執行。 此方法直接將產生的 PDF 檔案返回瀏覽器進行下載,無需中間儲存。 此方法不需要預設存儲,並透過 HTTP GET 立即觸發。 立即開始免費試用,探索 IronPDF 在 ASP.NET Core PDF 處理方面的全部功能,包括合併文件、表單填寫和數位簽章。 結論 在 ASP.NET Core 中實現 PDF 上傳和下載功能,結合了標準文件處理技術和 IronPDF 的高階處理能力。 透過添加浮水印、產生、儲存和提供 PDF 文件,您的應用程式將變得更加強大且用戶友好。 您可以整合更多功能,例如合併文件、新增元資料、填寫表單或產生互動式內容。 查閱 IronPDF 的參考文件或瀏覽我們部落格中的新教程,以了解高級功能。 你的程式碼是否有以下錯誤問題? 請查看有用的故障排除指南。 準備好使用進階 PDF 功能增強您的 ASP.NET Core 應用程式了嗎? 購買 IronPDF 許可證以進行生產部署,訪問豐富的文檔以獲取更多信息,或與我們的團隊交流,以獲得針對您具體項目需求的指導。 常見問題解答 如何在 ASP.NET Core MVC 應用程式中上傳 PDF 檔案? 若要在 ASP.NET Core MVC 應用程式中上傳 PDF 檔案,您可以使用 IFormFile 介面從表單中擷取檔案資料,然後在儲存前進行伺服器端處理,可能的話,還可以借助 IronPDF 來進一步處理 PDF。 在 ASP.NET 中下載 PDF 檔案的最佳方式是什麼? 在 ASP.NET 中下載 PDF 檔案的最佳方式是在控制器中使用 FileResult 動作。IronPDF 可協助在伺服器端產生和修改 PDF,以確保 PDF 可供下載。 我可以使用 ASP.NET 在資料庫中儲存 PDF 檔案嗎? 是的,您可以使用 ASP.NET 將 PDF 檔案轉換為位元組陣列,並將其儲存為二進位大型物件 (BLOB),藉此將 PDF 檔案儲存於資料庫中。IronPDF 可以在存儲之前幫助處理 PDF。 IronPDF 如何在 ASP.NET 中幫助 PDF 進行水印處理? IronPDF for .NET 提供的功能可以輕鬆地在 PDF 上加入文字或圖片水印,這些水印可以整合到您的 ASP.NET 應用程式中,以便在下載或儲存之前修改文件。 使用 EF Core 儲存 PDF 有哪些優點? EF Core 允許有效率的物件關聯映射,讓您更容易在 ASP.NET 應用程式中以結構化、可擴充的方式管理 PDF 儲存與檢索。 是否可以在 ASP.NET 應用程式中處理 PDF 內容? 是的,使用 IronPDF,您可以操作 PDF 內容,包括編輯文字、圖片和元資料,這對於在提供給使用者之前自訂文件非常有用。 如何在 ASP.NET 中安全地處理檔案上傳? 若要在 ASP.NET 中安全地處理檔案上傳,您應該驗證檔案類型、限制檔案大小,並將檔案儲存在安全的位置。使用 IronPDF 之類的函式庫也有助於確保 PDF 檔案本身的完整性。 在 Web 應用程式中使用 PDF 時,有哪些常見的挑戰? 常見的挑戰包括確保檔案相容性、管理大檔案大小以及維持文件完整性。IronPDF 提供強大的 PDF 創建和處理工具,有助於克服這些難題。 我可以在 ASP.NET 中將不同類型的檔案轉換為 PDF 嗎? 是的,IronPDF 可讓您在 ASP.NET 應用程式中,將 HTML 或圖片檔案等各種檔案類型無縫轉換為 PDF。 Model-View-Controller (MVC) 在 ASP.NET 中處理 PDF 的角色是什麼? MVC 模式透過分隔資料處理 (模型)、使用者介面 (視圖) 和應用程式邏輯 (控制器) 來協助組織處理 PDF 的程式碼,使 PDF 功能的管理和擴充更加容易。 Curtis Chau 立即與工程團隊聊天 技術作家 Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。 相關文章 發表日期 12月 18, 2025 .NET PDF API 教學課程(面向 .NET 開發人員) 如何使用 IronPDF 建立 .NET PDF API 閱讀更多 發表日期 12月 18, 2025 如何使用 Aspose C# 和 IronPDF 建立 PDF 本指南將一步步教您如何使用 Aspose C# 和 IronPDF 建立 PDF,專為開發人員設計。 閱讀更多 發表日期 12月 18, 2025 使用 IronPDF 建立 .NET Core PDF 產生器 在 .NET Core 中使用 IronPDF 構建強大的 PDF 生成器。將 HTML 轉換為 PDF,創建發票並生成具有像素完美渲染的報告。 閱讀更多 如何使用 IronPDF 從 C# 在電子郵件中以附件形式傳送產生的 PDF 檔案經典 ASP:使用 IronPDF 從 HTM...
發表日期 12月 18, 2025 如何使用 Aspose C# 和 IronPDF 建立 PDF 本指南將一步步教您如何使用 Aspose C# 和 IronPDF 建立 PDF,專為開發人員設計。 閱讀更多
發表日期 12月 18, 2025 使用 IronPDF 建立 .NET Core PDF 產生器 在 .NET Core 中使用 IronPDF 構建強大的 PDF 生成器。將 HTML 轉換為 PDF,創建發票並生成具有像素完美渲染的報告。 閱讀更多