使用C#通过dataURI在默认浏览器中加载文档

时间:2018-10-23 19:02:28

标签: c#

我有一个C#桌面应用程序,该应用程序从Web服务接收文档数据。

我尝试使用以下方式加载文档:

    Process.Start(new ProcessStartInfo(browserName, "data:application/pdf;base64, " + base64EncodedPDF));

但是,当命令行参数超过最大允许大小时,此操作将失败。

是否有一种解决方法,不需要将文件写入本地系统?

1 个答案:

答案 0 :(得分:2)

microsoft docs,用于启动进程的字符数限制为8191个字符。

我可以按照最实际到最少的顺序考虑的选项:

  • 将其写入临时文件(绝对是最简单的选择,但您指出要避免这种情况)
  • 上传到云文件存储(例如azure blob存储或AWS S3)并打开该链接
  • 使用Kestrel或HttpListener临时托管来自本地URL的数据并打开它
  • 使用Selenium或PuppeteerSharp之类的东西来远程控制浏览器并在打开浏览器后导航到数据URL