3

我的 ASP.NET Web API 服务动态生成文件供用户下载。

远程应用程序向 API 发送请求,该请求:

  1. 生成文件并保存 ----> 在哪里??<-----
  2. 返回文件位置的 URL,以便下载。

那里没什么特别的,但我的问题是在哪里保存这些文件的最佳做法是什么? 一些挖掘表明 App_Data 可能是合适的地方,但我还没有看到任何确定的东西。

一些考虑:

  • 这一切都发生在公司的 Intranet 上,因此安全性并不是什么大问题。
  • 这些文件基本上是临时的。有没有一种简单的方法可以在下载文件后删除文件?没什么大不了的——我可以设置一个计划任务来清除目标文件夹的任何内容。

谢谢!

4

2 回答 2

4

您可以写入应用程序存储数据的任何位置。

我建议使用系统 Temp 目录,这就是 ( System.IO.Path.GetTempPath()) 的用途,或者如果您有写访问权限,则可以使用应用程序的子目录:

String path = Server.MapPath("~/Temp");
if( !Directory.Exists( path ) ) Directory.CreateDirectory( path );

using(FileStream fs = File.OpenWrite( Path.Combine( path, "TempFileName.dat" ) )) {
    fs.Write( new Byte[1024] );
}
于 2013-08-21T20:06:58.553 回答
1

如果您可以访问您的 Web 服务器,您还可以在您的 Web 应用程序下创建一个虚拟目录,并将其配置为指向您想要的任何文件位置。然后,您可以让您的应用程序使用 System.IO 将文件保存到该虚拟目录中。这就是我过去所做的。

于 2013-08-22T03:34:39.447 回答