我正在使用abcPDF来动态创建PDF。
我想保存这些PDF以供客户随时检索。最简单的方法(以及我现在在当前服务器上的方式)只是将完成的PDF保存到文件系统。
似乎我坚持使用blob。幸运的是,abcPDF可以保存为流和文件。现在,如何将流连接到blob?我找到了代码,显示blob采用如下流:
blob.UploadFromStream(theStream, options);
abcPDF函数如下所示:
theDoc.Save(theStream)
我不知道如何弥合这个差距。
谢谢! 布拉德
答案 0 :(得分:4)
作为一种不需要将整个文件保存在内存中的替代方法,您可以尝试这样做:
using (var stream = blob.OpenWrite())
{
theDoc.Save(stream);
}
修改强>
在此处添加警告:如果save
方法需要可搜索的流,我认为这不会起作用。
答案 1 :(得分:1)
鉴于这种情况并且不知道abcPdf的Save()方法的完整重载列表,似乎你需要一个MemoryStream。类似的东西:
using(MemoryStream ms = new MemoryStream())
{
theDoc.Save(ms);
ms.Seek(0, SeekOrigin.Begin);
blob.UploadFromStream(ms, options);
}
这将完成这项工作。但是如果你正在处理大文件,并且你期望大量的流量(大量的同步PDF创建),你可能只需要一个临时文件。将PDF写入临时文件,然后立即上传blob的临时文件。