File.ReadAllBytes和Memorystream.ToArray返回错误的数据

时间:2019-04-05 13:03:28

标签: c# asp.net-mvc

我有一个奇怪的问题。我正在制作一个C#MVC应用程序,该应用程序生成PDF并提供带有下载按钮的下载。

println(3)

突然之间,无法通过File.ReadAllBytes()或Memorystream(或任何其他流)将PDF文件正确转换为byte []。

当我使用Memorystream时,在ReadTimeOut和WriteTimeOut上都收到InvalidOperationException。

我在一个新的C#MVC项目中实现了上述代码,一切正常。因此问题必须出在我正在从事的项目中。

编辑:

当我读出字节时,它确实返回了一个完整的字节数组,但是当将其下载并转换回PDF时,PDF是空的(所有页面的确存在),并且名称是一些奇怪字符的集合。 / p>

在新项目中,它只是应有的普通PDF。

有人知道这可能是什么,我怎么解决? (如果需要,我可以澄清更多)

2 个答案:

答案 0 :(得分:0)

尝试类似this的内容:

public ActionResult Download()
{
    string url = (string)TempData["url"];

    using (WebClient client = new WebClient())
    {
       // Download data.
       byte[] thePdf = client.DownloadData("http://url-to-your-pdf-file.com/file1");
       return File(thePdf,"application/pdf");
    }
}

答案 1 :(得分:0)

似乎我在FilterConfig中一行或两行过多。我添加了2个自定义过滤器,这似乎弄乱了所有内容。现在,我删除了它们,一切又恢复了!