我一直在使用Convert.ToBase64String(content)
一些项目,没有任何问题,直到今天有一个 18 页的文件,大约 1 MB。Chrome 控制台的错误是Failed to load resource: net::ERR_INVALID_URL
. 我猜是因为字符串的大小?!
我最终使用了 web api 并将其返回为FileStreamResult
而不是 Base64 字符串。
var stream = new MemoryStream();
await stream.WriteAsync(content, 0, content.Length);
stream.Position = 0;
return new FileStreamResult(stream, "application/pdf");
更新:在剃须刀页面上显示基本相同。我刚刚在这里复制了使用 RingCentral 检索传真内容的代码。更好的是,只需使用FileContentResult
已有的byte[]
.
public async Task<IActionResult> OnGet(string messageId)
{
try
{
using (var rc = new RingCentral.RestClient(setting.ClientId, setting.ClientSecret, setting.Production, "Fax"))
{
await rc.Authorize(setting.UserName, setting.Extension, setting.Password);
var extension = rc.Restapi().Account().Extension();
var outputPDF = await extension.MessageStore(messageId).Content(messageId).Get();
return new FileContentResult(outputPDF, "application/pdf");
}
return Page();
}
catch (Exception ex)
{
_logger.Error(ex.Message);
throw;
}
}