使用c#从虚拟URL下载文件

时间:2016-11-22 09:41:37

标签: c# asp.net-mvc

我想从虚拟路径下载文件。

http://localhost:60181/DocTemplates/Forms/HO/test.pdf

文件将用于动态扩展,意味着它可能是pdf文件或文档。

我想使用字节流下载文件意味着首先将文件转换为字节流并在下载后。

点击超链接后上传文件。

我不知道如何完成这项任务,请给我建议。

谢谢。

2 个答案:

答案 0 :(得分:1)

我在控制器中使用了像Web Client这样简单的东西。

System.Net.WebClient client = new WebClient();
client.DownloadFile("url", "directory + filename");

只需指定要下载的文件的网址,然后指定要将文件另存为的目录和文件名。

然后,您可以使用控制器中的文件执行所需操作。

您也可以尝试:

using (FileStream fs = File.OpenRead(path))
{
   int length = (int)fs.Length;
   byte[] buffer;

   using (BinaryReader br = new BinaryReader(fs))
   {
       buffer = br.ReadBytes(length);
   }

   Response.Clear();
   Response.Buffer = true;
   Response.AddHeader("content-disposition",        String.Format("attachment;filename={0}", Path.GetFileName(path)));
   Response.ContentType = "application/" +     Path.GetExtension(path).Substring(1);
   Response.BinaryWrite(buffer);
   Response.End();
}

答案 1 :(得分:1)

using (var client = new WebClient())
{
    var content = client.DownloadData(url);
    using (var stream = new MemoryStream(content))
    {
        ...
    }
} 

也许你正在寻找这个