首页 > 解决方案 > 在 azure 中使用 asp.net 在本地驱动器中创建 CSV 文件

问题描述

我有一个 webapp,我可以在其中创建 csv 文件并将其定位在我的 c 驱动器中,

在本地运行时它工作正常,但是一旦我将应用程序部署到 Azure

我越来越 :

UnauthorizedAccessException:对路径“C:\Tuesday_HH19_MI6.csv”的访问被拒绝。

如何允许网站访问并在用户的本地驱动器中创建文件?

如果这有帮助,我附上了 azure 的整个日志异常,谢谢

在此处输入图像描述

标签: asp.net-mvcazureasp.net-core

解决方案


在 Azure 中运行的 Web App 不能直接将其保存到用户的本地驱动器,但它可以生成 CSV,然后提示他们通过浏览器下载。您可以使用一些选项,具体取决于您是尝试发送文件系统上已经存在的文件,还是动态生成它并将其作为字节数组或流。

这里有一些示例控制器方法可以给你和想法。您的控制器可能在 return 语句之前做了很多事情,这些示例被简化了。

文件系统上的现有文件,使用 FileResult:

public FileResult DownloadFile()
{
   // create the file etc and save to FS
   return File("/Files/File Result.pdf", "text/csv", "MyFileName.csv");
}

如果文件是在内存中生成的,并且您将其作为字节数组:

public FileContentResult DownloadContent()
{
   // Create CSV as byte array
   var myfile = MyMethodtoCreateCSV();
   return new FileContentResult(myfile, "text/csv") { 
      FileDownloadName = "MyFileName.csv" 
   };
}

推荐阅读