将文件读取到项目中无法正常工作的字节

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将文件读取到项目中无法正常工作的字节相关的知识,希望对你有一定的参考价值。

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

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

    byte[] thePdf = System.IO.File.ReadAllBytes(url);

    return File(thePdf, "application/pdf");
}

突然之间,我无法使用byte[]File.ReadAllBytes()(或任何其他流)将PDF文件正确转换为MemoryStream

当我使用MemoryStream时,我在InvalidOperationExceptionReadTimeOut都得到了WriteTimeOut

我在一个新的C#MVC项目中实现了上面提到的代码,一切都运行良好。所以问题必须与我正在从事的项目有关。

答案

如果您的网址是远程网址,则应使用WebClient下载如下数据。

我试图重现你的代码,它的工作原理。

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

            url = "http://www.iuh.edu.vn/Tuyensinh/QC/TomTatQuyCheThiTHPT2018.pdf";

            using (var client = new WebClient())
            {
                // read data
                byte[] thePdf = client.DownloadData(url);

                return File(thePdf, "application/pdf");

            }

            //byte[] thePdf = System.IO.File.ReadAllBytes(url);

            //return File(thePdf, "application/pdf");
        }

在cshtml中:

<input type="button" value="Download" onclick="window.location.href='/YourController/Download'" />

以上是关于将文件读取到项目中无法正常工作的字节的主要内容,如果未能解决你的问题,请参考以下文章

后堆栈在 Jetpack Navigation 中无法正常工作

片段在较低版本的android中无法正常工作

将PDF从内存加载到telerik:RadPdfViewer

PhoneGap 文件下载在 IOS 设备上无法正常工作

修改PNG文件的一个字节[关闭]

OpenGL、GLSL 片段着色器无法读取 Sampler2D 纹理