首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure Web SItes -如何写入文件

Azure Web SItes -如何写入文件
EN

Stack Overflow用户
提问于 2012-08-31 03:07:54
回答 2查看 566关注 0票数 1

我正在使用abcPDF动态创建PDF。

我想保存这些PDF供客户检索他们想要的任何时间。最简单的方法(也是我现在在当前服务器上所做的方法)是简单地将完成的PDF保存到文件系统中。

似乎我一直在使用blobs。幸运的是,abcPDF既可以保存为流,也可以保存为文件。现在,如何将一个流连接到一个blob?我找到了显示blob获取流的代码,如下所示:

代码语言:javascript
复制
blob.UploadFromStream(theStream, options);

abcPDF函数如下所示:

代码语言:javascript
复制
theDoc.Save(theStream)

我不知道如何弥合这个鸿沟。

谢谢!布拉德

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-31 03:22:50

考虑到这种情况,并且不知道abcPdf的Save()方法的重载的完整列表,您似乎需要一个MemoryStream。类似于:

代码语言:javascript
复制
using(MemoryStream ms = new MemoryStream())
{
    theDoc.Save(ms);
    ms.Seek(0, SeekOrigin.Begin);
    blob.UploadFromStream(ms, options);
}

这将完成这项工作。但是,如果您正在处理大文件,并且您预计会有大量的流量(大量同时创建PDF ),那么您可能只需要一个临时文件。将PDF写入临时文件,然后立即上载blob的临时文件。

票数 1
EN

Stack Overflow用户

发布于 2012-08-31 14:41:46

作为一种不需要将整个文件保存在内存中的替代方法,您可以尝试这样做:

代码语言:javascript
复制
using (var stream = blob.OpenWrite())
{
    theDoc.Save(stream);
}

编辑

在这里补充一点:如果save方法需要一个可查找的流,我认为这是行不通的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12203791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档