ABCpdf-下载带有.NET Core 2.1的PDF-HttpContext/HttpResponse



我正在创建一个网页,允许用户使用ABCpdf以PDF格式下载报告。但是在阅读文档时,我看到的唯一选项是使用doc.Save("test.pdf")(它将文件保存在承载应用程序的服务器上(或使用'HttpContext.Current.ApplicationInstance.CompleteRequest();'(它保存在客户端,这正是我想要的,但HttpContext.Current在.NET Core.上不可用

我的创可贴解决方案是使用doc.Save(),我会将文件保存在服务器上,然后发送到视图的链接,然后从服务器下载。我能想到的一个潜在风险是确保在服务器上开始下载后"清理"。

对于HttpContext.Current和HttpResponse,是否有一个替代的/.NETCore等价物?

这是我想工作的代码:

byte[] theData = doc.GetData();
Response.ClearHeaders();
Response.ClearContent();
Response.Expires = -1000;
Response.ContentType = "application/pdf";
Response.AddHeader("content-length", theData.Length.ToString());
Response.AddHeader("content-disposition", "attachment; filename=test.pdf"); 
Response.BinaryWrite(theData);
HttpContext.Current.ApplicationInstance.CompleteRequest();

我得到的错误(非详细(

'HttpResponse' does not contain a definition for 'ClearHeaders'
'HttpResponse' does not contain a definition for 'ClearContent'
'HttpResponse' does not contain a definition for 'Expires'
'HttpResponse' does not contain a definition for 'AddHeader'
'HttpResponse' does not contain a definition for 'BinaryWrite'
'HttpContext' does not contain a definition for 'Current'

我已经将这个答案更新为实际有效的答案!GetStream可以满足您的需要,但是为了方便在.NET Core中下载文件,如果您按照https://learn.microsoft.com/en-us/aspnet/core/tutorials/first-web-api?view=aspnetcore-2.1。然后,您可以创建一个路由控制器来提供流中的文件,如使用Asp.net核心将PDF返回到浏览器中所示。所以你的控制器看起来像:

[Route("api/[controller]")]
public class PDFController : Controller {
// GET: api/<controller>
[HttpGet]
public IActionResult Get() {
using (Doc theDoc = new Doc()) {
theDoc.FontSize = 96;
theDoc.AddText("Hello World");
Response.Headers.Clear();
Response.Headers.Add("content-disposition", "attachment; filename=test.pdf");
return new FileStreamResult(theDoc.GetStream(), "application/pdf");
}
}
}

出于好奇,我只是模拟了一下,它确实有效——当你访问URLlocalhost:port/api/PDF时,将PDF作为下载直接提供给浏览器。如果您将内容处理为"inline;filename=test.pdf",它将显示在浏览器中,并可作为test.pdf下载。

有关GetStream方法的更多信息,请点击此处:https://www.websupergoo.com/helppdfnet/default.htm?page=source%2F5-abcpdf%2Fdoc%2F1方法%2Getstream.htm

相关内容

  • 没有找到相关文章

最新更新