我正在构建一个向客户销售pdf的系统。我们有第三方创建和管理pdf。购买时,我们的api调用它们的api,返回一个byte []。
如何从此开始下载?
示例流程:
用户点击购买
Javascript进行ajax调用 - > / API / PurchaseProduct /产品/信息
C#然后以类似的方式调用第三方api
返回是一个字节[] - 哪个是文档
从这里我不知道是否应该将byte []返回给浏览器或者是否应该发生其他事情。如果我返回byte []做javascript然后需要把它变成pdf吗? C#应该将byte []转换成pdf然后返回吗?
我担心这是非常新的,我不知道从哪里开始。
由于
修改
我们使用ASP.Net MVC,我们的网站是单页面应用程序。
文件大小取决于购买的内容。
答案 0 :(得分:3)
无法通过AJAX将文件返回给用户。浏览器必须使用普通的HTTP请求来请求文件。
最好的解决方案是在ajax请求之后将文件保存到磁盘,然后将路径返回到客户端,以便可以像往常一样打开文件。 window.open。
答案 1 :(得分:2)
在AJAX调用的方法中,包括以下内容:
Current.Response.ClearHeaders();
Current.Response.ClearContent();
Current.Response.AppendHeader("Content-Disposition", "attachment; filename=file.pdf");
Current.Response.ContentType = "application/pdf";
Current.Response.BinaryWrite(returnedByte);
Current.Response.End();
其中returnedByte
是byte[]