1

我正在构建一个向我们的客户销售 pdf 的系统。我们有一个创建和管理 pdf 的第三方。购买时,我们的 api 调用他们的 api,它返回一个 byte[]。

如何从这里开始下载?

示例流程:

用户点击购买

Javascript 进行 ajax 调用 -> /api/PurchaseProduct/product/information

然后 C# 以类似的方式调用 3rd 方 api

Return is a byte[] - 这是文档

从这里我不知道是否应该将 byte[] 返回给浏览器,或者是否应该发生其他事情。如果我返回 byte[],javascript 是否需要将其转换为 pdf?C# 是否应该将 byte[] 转换为 pdf 然后返回?

恐怕这是非常新的,我不知道从哪里开始。

谢谢

编辑

我们使用 ASP.Net MVC,我们的网站是一个单页应用程序。

文件大小因购买的内容而异。

4

2 回答 2

3

无法通过 AJAX 将文件返回给用户。浏览器必须使用普通的 HTTP 请求来请求文件。

最好的解决方案是在 ajax 请求之后将文件保存到磁盘,然后将路径返回给客户端,以便可以像往常一样使用例如 window.open 打开文件。

于 2013-09-17T16:56:21.920 回答
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[]

于 2013-09-17T17:29:09.783 回答