将byte []转换为pdf并返回它

时间:2018-01-06 14:14:14

标签: pdf asp.net-web-api asp.net-core

如何将内存流写入pdf并导出?我在.net core 2工作。

[Authorize]
[HttpGet]
public IActionResult getPdfDate(int id)
{
   ApplicationDbContext docs = new ApplicationDbContext();
   var data = docs.UsersDocs.FindAsync(id);       
   MemoryStream ms = new MemoryStream(data.Result.doc);
}

1 个答案:

答案 0 :(得分:0)

据推测,您的doc属性是byte[],已经是" PDF"。因此,您只需使用适当的mime-type转储字节:

var data = await docs.UsersDocs.FindAsync(id);
return File(data.doc, "application/pdf");

正如@JamieTaylor指出的那样,你需要等待你的异步调用。否则,您将使线程死锁。另外,不要在行动中重新掌握上下文。在ConfigureServices StartUp中注册您的服务,然后将其注入您的控制器:

public class FooController : Controller
{
    protected readonly ApplicationDbContext _context;

    public FooController(ApplicationDbContext context)
    {
        _context = context;
    }

    ...
}