我目前正在使用Microsoft的WopiOffice Web App技术生成一些预览,并且遇到了问题。对不起,我的英语不好,但是我会尽力表达自己的意思。

所以!我通过下载文件内容并将其存储到HttpContent中来生成预览。
首先,我在项目~/App_Data/中的文件上尝试了此操作。我使用FileStream类读取了它的内容,并使用以下内容将其转换为HttpContentStreamContent(myFileStream)。所以,这是完美的工作!

但是,我需要我的项目来处理只能通过Internet访问的存储在服务器上的文件(因此,物理网址应如下所示:http://myServer/res/file.pdf)。我在这里不能使用FileStream类,所以我这样做是这样的:

byte[] tmp;
using (WebClient client = new WebClient())
{
    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    tmp = client.DownloadData("http://myServer/res/file.pdf");
}
myHttpContent = new ByteArrayContent(tmp);


事实是,这个小样本似乎可以正常工作,但此后未生成预览​​,这是我更改的唯一代码。我在这里发布之前检查了一些东西,所以:我确实可以访问该文件,并且可以阅读。

所以,我的问题是,这是获取文件内容的一种好方法,它已经过时了,我应该怎么做才能对此进行修补?

希望我的帖子足够清楚,并感谢您的阅读!

最佳答案

我认为您可以执行以下操作

MemoryStream ms;
using (WebClient client = new WebClient())
{
    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    ms = new MemoryStream(client.DownloadData("http://myServer/res/file.pdf"));
}


然后使用内存流应该表现得与文件流相同。

07-26 00:47