【问题标题】:creating CSV file in local drive with asp.net in azure在 azure 中使用 asp.net 在本地驱动器中创建 CSV 文件
【发布时间】:2021-03-07 15:24:36
【问题描述】:
我有一个 webapp,我可以在其中创建 csv 文件并将其定位到我的 c 驱动器中,
在本地运行时它工作正常,但是一旦我将应用程序部署到 Azure
我明白了:
UnauthorizedAccessException:对路径“C:\Tuesday_HH19_MI6.csv”的访问被拒绝。
如何允许网站访问并在用户的本地驱动器中创建文件?
如果这有帮助,我会从 azure 附加整个日志异常,
谢谢
【问题讨论】:
标签:
asp.net-mvc
azure
asp.net-core
【解决方案1】:
在 Azure 中运行的 Web 应用无法直接将其保存到用户的本地驱动器,但它可以生成 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"
};
}